題目←
wwq:這題你居然沒一眼切?!
嗯……二進位制列舉……
判斷不超過m的二進位制數的每一位是1更優還是0更優
顯然同時滿足我們要放0
為了便於判斷大小,從高位到低位列舉
複雜度 2*n*log(m)
#include
#include
#include
#include
#define ll long long
using
namespace
std;
const ll maxn = 100000 + 50;
ll n,m;
struct zt
ope[maxn];
string x;
ll len;
ll ans;
ll check(ll loc,ll v)
else
if(ope[i].ch == 2)
else
if(ope[i].ch == 3)
}return v;
}ll now,maxn;
int main()
else
if(x == "or")
else
if(x == "xor")
scanf("%d",&ope[i].num);
maxn = max(maxn,ope[i].num);
}len = log2(maxn);
for(ll i = len;i >= 0;i --)
else
if(tmp1 > tmp2)
}printf("%lld",ans);
}
bzoj3668 Noi2014 起床困難綜合症
21 世紀,許多人得了一種奇怪的病 起床困難綜合症,其臨床表現為 起床難,起床後精神不佳。作為一名青春陽光好少年,atm 一直堅持與起床困難綜合症作鬥爭。通過研究相關文獻,他找到了該病的發病原因 在深邃的太平洋海底中,出現了一條名為 drd 的巨龍,它掌握著睡眠之精髓,能隨意延長大家的睡眠時間。正是...
NOI2014 起床困難症
題意 有n個關卡,你有乙個初始攻擊值,這個值初始不能超過m,每個關卡有乙個攻擊型別op 位運算 和引數t 現在問你通過這些關卡最後你的攻擊值最大是多少。最開始直接看到這道題直接就先打了o nm 的暴力列舉,m 2 30.所以顯然知道自己過不了,依舊抱著好玩的態度去水了30分暴力,然後想正解。最開始是...
998 起床困難綜合症
本題是讓我們選擇 0,m 之間的乙個整數x,經過給定的n次位運算,使結果ans最大。位運算的主要特點之一是在二進位制表示下不進製。正因為如此,在x可以任意選擇的情況下從,參與位運算的各個位 bit 之間是獨立無關的。換言之,對於任意的k 0 k 30 ans的第k位是幾 只與 x的第k位是幾 有關,...