起床困難綜合症(省選)
題目:
題目描述
21世紀,許多人得了一種奇怪的病:起床困難綜合症,其臨床表現為:起床難,起床後精神不佳。作為一名青春陽光好少年,atm一直堅持與起床困難綜合症作鬥爭。通過研究相關文獻,他找到了該病的發病原因: 在深邃的太平洋海底中,出現了一條名為drd的巨龍,它掌握著睡眠之精髓,能隨意延長大家的睡眠時間。 正是由於drd的活動,起床困難綜合症愈演愈烈, 以驚人的速度在世界上傳播。為了徹底消滅這種病,atm決定前往海底,消滅這條惡龍。歷經千辛萬苦,atm終於來到了drd所在的地方,準備與其展開艱苦卓絕的戰鬥。drd有著十分特殊的技能,他的防禦戰線能夠使用一定的運算來改變他受到的傷害。具體說來,drd的防禦戰線由n扇防禦門組成。每扇防禦門包括一個運算op和一個引數t,其中運算一定是OR,XOR,AND中的一種,引數則一定為非負整數。如果還未通過防禦門時攻擊力為x,則其通過這扇防禦門後攻擊力將變為x op t。最終drd受到的傷害為對方初始攻擊力x依次經過所有n扇防禦門後轉變得到的攻擊力。
由於atm水平有限,他的初始攻擊力只能為0到m之間的一個整數(即他的初始攻擊力只能在 0, 1, … , m中任選,但在通過防禦門之後的攻擊力不受m的限制)。為了節省體力,他希望通過選擇合適的初始攻擊力使得他的攻擊能讓drd受到最大的傷害,請你幫他計算一下,他的一次攻擊最多能使drd受到多少傷害。
輸入輸出格式
輸入格式:
輸入檔案的第 1 行包含 2 個整數,依次為n, m,表示 drd 有n扇防禦門,atm 的初始攻擊力為0到m之間的整數。
接下來n行,依次表示每一扇防禦門。每行包括一個字串op和一個非負整數t,兩者由一個空格隔開,且op在前,t在後,op表示該防禦門所對應的操作,t表示對應的引數。
輸出格式:
輸出一行一個整數,表示atm的一次攻擊最多使drd受到多少傷害。
作者思路:看似很難,實際上用貪心。照他說的做。
程式碼:
var n,m,ans,cnt:int64;
mark:longint;
a,b:array[0..1000000] of int64;
c:array[0..100] of boolean;
flag:boolean;
procedure init;
var i:longint;
ch:char;
begin
readln(n,m);
for i:=1 to n do
begin
read(ch);if ch='A' then b[i]:=1 else if ch='O' then b[i]:=2 else b[i]:=3;
while ch<>' ' do read(ch);
readln(a[i]);
if (b[i]=1) and (a[i]=0) then
begin
flag:=true;mark:=i;
end;
end;
end;
procedure work2;
var x:int64;
i:longint;
begin
x:=0;
for i:=mark+1 to n do
if b[i]=1 then x:=x and a[i]
else
if b[i]=2 then
x:=x or a[i]
else x:=x xor a[i];
writeln(x);
end;
procedure work1;
var x,y,z:int64;
i,j:longint;
begin
x:=0;
for i:=1 to n do
if b[i]=1 then
x:=x and a[i]
else
if b[i]=2 then
x:=x or a[i] else x:=x xor a[i];
z:=x;ans:=x;cnt:=0;
fillchar(c,sizeof(c),false);
for i:=31 downto 1 do
if z and (1<<(i-1))=0 then
begin
x:=1<<(i-1);
for j:=1 to n do if b[j]=1 then x:=x and a[j] else if b[j]=2 then x:=x or a[j] else x:=x xor a[j];
if (x and (1<<(i-1))<>0) and (cnt+1<<(i-1)<=m) then begin c[i]:=true;inc(cnt,1<<(i-1));end;
end;
for i:=1 to 31 do if c[i] then inc(ans,1<<(i-1));
writeln(ans);
end;
begin
ans:=0;
flag:=false;
init;
if flag then work2 else work1;
end.
相關推薦
起床困難綜合症(省選)
題目: 題目描述 21世紀,許多人得了一種奇怪的病:起床困難綜合症,其臨床表現為:起床難,起床後精神不佳。作為一名青春陽光好少年,atm一直堅持與起床困難綜合症作鬥爭。通過研究相關文獻,他找到了該病的發病原因: 在深邃的太平洋海底中,出現了一條名為drd的巨
【BZOJ3668】[NOI2014] 起床困難綜合症(位運算思想)
點此看題面 大致題意: 給定一些位運算操作,讓你在\(0\sim m\)範圍內選一個初始值,使其在經過這些運算後得到的結果最大。 前置技能:關於位運算 作為一道位運算的題,如果你不知道什麼是位運算,那就完全做不了了。 關於位運算可以詳見這篇部落格:位運算相關(一)——位運算學習筆記。 接下來,我
加法變乘法——第六屆藍橋杯C語言B組(省賽)第六題
clu 自己 nbsp 加法 藍橋杯 重新 () std spa 原創 加法變乘法 我們都知道:1+2+3+ ... + 49 = 1225現在要求你把其中兩個不相鄰的加號變成乘號,使得結果為2015 比如:1+2+3+...+10*11+12+...+27*28+29+
三羊獻瑞——第六屆藍橋杯C語言B組(省賽)第三題
lan font oid 漢字 print ack size IV cnblogs 原創 三羊獻瑞 觀察下面的加法算式: 祥 瑞 生 輝 + 三 羊 獻 瑞 ------------------- 三 羊 生 瑞 氣 (如果有對齊問題,可以參看【圖1.jp
小程序(mpvue) 購物車(全選)
del bin lec ons ssp lse one have pla 效果圖: 說明:全選/全不選, 1.數據: products:[{checked:true,code:"4",echecked:false,hasPromotions:true,id:4328
noi2014 起床困難綜合症
題目描述 21世紀,許多人得了一種奇怪的病:起床困難綜合症,其臨床表現為:起床難,起床後精神不佳。作為一名青春陽光好少年,atm一直堅持與起床困難綜合症作鬥爭。通過研究相關文獻,他找到了該病的發病原因: 在深邃的太平洋海底中,出現了一條名為drd的巨龍,它掌握著睡眠之精髓,能隨意延長大家
bzoj3668: [Noi2014]起床困難綜合症 拆位模擬
bzoj3668: [Noi2014]起床困難綜合症 Description 21 世紀,許多人得了一種奇怪的病:起床困難綜合症,其臨床表現為:起床難,起床後精神不佳。作為一名青春陽光好少年,atm 一直堅持與起床困難綜合症作鬥爭。通過研究相關文獻,他找到了該病的發病原因:在深邃
BZOJ4811: [Ynoi2017]由乃的OJ BZOJ3668: [Noi2014]起床困難綜合症
BZOJ4811: [Ynoi2017]由乃的OJ Description 由乃正在做她的OJ。現在她在處理OJ上的使用者排名問題。OJ上註冊了n個使用者,編號為1~",一開始他們按照編號排名。 由乃會按照心情對這些使用者做以下四種操作,修改使用者的排名和編號: 然
DataTable新增checkbox實現表格資料全選,單選(點選)
Datatables是一款jquery表格外掛。它是一個高度靈活的工具,可以將任何HTML表格新增高階的互動功能。 分頁,即時搜尋和排序 幾乎支援任何資料來源:DOM, javascript, Ajax 和 伺服器處理 支援不同主題 DataTables, j
bzoj3668: [Noi2014]起床困難綜合症
題目 每一位用 0 / 1 0/1
2018.10.25【NOIP練習】ZUA球困難綜合徵(線段樹)(CRT)
傳送門 解析: 首先,這天坑的出題人。。。 思路肯定是線段樹維護區間運算結果,但是兩萬多的模數怎麼維護? 這奇怪的光速。。。光速不是299792458m/s299792458m/s299792458m/s嗎?怎麼會變成293932939329393? 是的模數
Java 中集合型別包含ArrayList、LinkedList、HashMap等類,下列描述正確的是(多選)?
A.ArrayList與LinkedList都實現了List介面B.刪除元素時,ArrayList的表現更佳C.ArrayList的訪問速度比LinkedList快D.HashMap實現Map介面,允許任何型別的鍵和值物件,並且允許鍵和值都為null答案:ACD擴充套件:瞭解
(截選)呼叫.app獲取 返回的結果
模組/app/ 測試點 條件 期望結果 /.../login 登陸後初始化資料 post,true document.getElementById的表格 /.../loginout post,fals
recyclerview給item新增選中效果(多選)
大體實現思路: 使用相對佈局,在recyclerview的item整體佈局底層新增一個CheckBox,在adapter中引用一個Map標記選中CheckBox,然後在bandview中給CheckBox setOnCheckedChangeListener改變CheckB
Coder Buct 1072: 資料結構作業(可選)-- 約瑟環問題
題目描述 將m個孩子從1到m編上號,按序號圍坐成一個圈,從1號孩子開始數,每數到n時,被數到的孩子即離開圈子,然後從下一個孩子開始,再從1開始數,如此不斷地數下去,只到只剩下最後一個孩子,問剩下的孩子是幾號? 輸入 輸入為一組整數對,每個整數對佔一行,整數對的第一個
【NOI2014】起床困難綜合症
歷經千辛萬苦,atm 終於來到了 drd 所在的地方,準備與其展開艱苦卓絕的戰鬥。drd 有著十分特殊的技能,他的防禦戰線能夠使用一定的運算來改變他受到的傷害。具體說來,drd 的防禦戰線由 n扇防禦門組成。每扇防禦門包括一個運算op和一個引數t,其中運算一定是OR,XOR,AND中的一種,引數則一定為非負整
【NOI2014】bzoj3668 起床困難綜合症
Description 21 世紀,許多人得了一種奇怪的病:起床困難綜合症,其臨床表現為:起床難,起床後精神不佳。作為一名青春陽光好少年,atm 一直堅持與起床困難綜合症作鬥爭。通
UOJ 2 [NOI2014]起床困難綜合症
貪心 我們的目標一定是讓最終答案的二進位制位的高位儘量為1 發現位運算只會影響一位 於是搞貪心 #include<cstdio> #define N 100005 using nam
c#獲取中國三級行政區域劃分(省市縣)以及縣級經緯度demo
1 定義三級model [XmlRoot("country")] public class Country { [XmlElement("provinces")] public List<Prov
Angularjs bootstrap table多選(全選),支援單擊行選中
最終實現效果: index.html <!DOCTYPE html> <html> <head> <script src="//ajax.googleapis.com/ajax/libs/ang