1. 程式人生 > >起床困難綜合症(省選)

起床困難綜合症(省選)

題目:

題目描述

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