NOI2014 起床困難綜合症

2022-08-13 08:00:19 字數 1271 閱讀 6328

noi的水題

題意簡述:給出n個指令,在0到m之中選出乙個數,使其執行這n個指令後值最大。

一共有三種指令:「和」「或」「異或」,而乙個數在二進位制下執行三種指令時,各位之間是不能互相影響的。

有乙個簡單的結論,在二進位制中,第x位為1,之後的y位全為0,大於第x位為0,之後y位全為1(「之後」指低位)

非常簡單的乙個結論,想不明白的請去複習等比數列求和。

將m轉化為二進位制,從高到低列舉初始數字二進位制表示的每一位,有0和1兩種選法,會出現如下幾種情況:

之前選擇的每一位均與m相同,且m中這一位為0:答案中這一位也為0

之前選擇的每一位均與m相同,且m中這一位為1:選0或是選1均可,優先選擇能使結果中這一位為1的。如果選擇0或1均可,選擇0

之前選擇的與m不同,則答案中這一位選0和1均可,同樣優先選擇能使結果中這一位為1的

#includeusing

namespace

std;

intn,m,x,l;

int c[35],ans[35],num[35][3

];char s[5

];long

long

sum;

intmain()

for(int i=1;i<=n;i++)

for(int j=0;j<33;j++)

if(s[0]=='o'

)

if(s[0]=='x'

)

}

}l=-1

;

for(int i=0;i<33;i++) c[i]=0

;

while

(m)

for(int i=32;i>=0;i--)

if(num[i][1]==1) ans[i]=1

;

if(num[i][0]==0&&num[i][1]==0

) }}

for(int i=0;i<=32;i++) sum+=(ans[i]

"%lld

",sum);

return0;

}

NOI2014 起床困難綜合症

noi2014 起床困難綜合症 又刷了一道水題qwq 它給你n扇門,每扇門都有乙個值和乙個操作,這個操作為or and xor之間的某乙個。你需要從m中任意選取乙個數,使得這個數依次經過n扇門之後的值最大。n是1e5的,m是1e9的,如果你直接暴力列舉每乙個數,求最大值,複雜度顯然是1e14的,了。...

NOI2014 起床困難綜合症

點此看題 顯然要用二進位制貪心,我們從大到小地考慮每一位的選取情況。我們處理出第i ii位選0 1 0 10 1最終得到的結果,o n o n o n 跑一遍即可,然後如果選0 00產生貢獻我們就直接加上貢獻走人,否則選1 11產生貢獻我們就看現在剩下的m mm還支不支援這一位選1 11,如果支援我...

NOI2014 起床困難綜合症

21世紀,許多人得了一種奇怪的病 起床困難綜合症,其臨床表現為 起床難,起床後精神不佳。作為一名青春陽光好少年,atm一直堅持與起床困難綜合症作鬥爭。通過研究相關文獻,他找到了該病的發病原因 在深邃的太平洋海底中,出現了一條名為drd的巨龍,它掌握著睡眠之精髓,能隨意延長大家的睡眠時間。正是由於dr...