[CF] D - Bookshelves
題目:https://codeforces.com/contest/981/problem/D
MySol:https://codeforces.com/contest/981/submission/51882872
我是智障
OK,這樣上面那句就可以在還沒點進去就看到了
這題有個大性質,那就是AND,這可跟甚麼XOR、OR不同,可是AND喔><
雖然有點違和感,但我一開始就當作一般的東東隨便去DP看看,結果卻連範測都過不了
問題在哪呢?
亂做的話它的子問題不能推到大問題,當然,如果你已經AC的話就另當別論了
那要怎樣才能有子問題的最優甚麼的性質呢?你應該要想到AND,像我就沒想到就去看解了
如果你有一塊的加起來的長相是mask,那你最終答案肯定小於mask
如果你有一次得到的結果是(1 << 60),你就算是(1 << 59) - 1這麼多的1你也不care。
所以就會想到要從高位開始往下做DP
應該說看到是位元運算的題目就要想到對位元做事了,但我腦袋只閃過了一下下,就拋之腦後了QQ
MySol:https://codeforces.com/contest/981/submission/51882872
我是智障
OK,這樣上面那句就可以在還沒點進去就看到了
這題有個大性質,那就是AND,這可跟甚麼XOR、OR不同,可是AND喔><
雖然有點違和感,但我一開始就當作一般的東東隨便去DP看看,結果卻連範測都過不了
問題在哪呢?
亂做的話它的子問題不能推到大問題,當然,如果你已經AC的話就另當別論了
那要怎樣才能有子問題的最優甚麼的性質呢?你應該要想到AND,像我就沒想到就去看解了
如果你有一塊的加起來的長相是mask,那你最終答案肯定小於mask
如果你有一次得到的結果是(1 << 60),你就算是(1 << 59) - 1這麼多的1你也不care。
所以就會想到要從高位開始往下做DP
應該說看到是位元運算的題目就要想到對位元做事了,但我腦袋只閃過了一下下,就拋之腦後了QQ
留言
張貼留言