二进制
文章平均质量分 72
Jozky86
这个作者很懒,什么都没留下…
展开
-
CF1592E Bored Bakry
CF1592E Bored Bakry题意:给你长度为n的数组a,现在定义一段区间[l,r]为good,如果al&al+1&...&ar>al⊕al+1⊕...⊕ara_{l}\& a_{l+1}\&...\&a_{r}>a_{l}⊕a_{l+1}⊕...⊕a_{r}al&al+1&...&ar>al⊕al+1⊕...⊕ar请输出good区间的最长长度题解:我们先去考虑&与⊕的区别,满足情原创 2021-10-06 22:09:14 · 224 阅读 · 0 评论 -
cf1557 C. Moamen and XOR
cf1557 C. Moamen and XOR题意:一个n位数,每一位小于2k2^k2k,如果a1&a2&…an>=a1⊕a2…⊕an,则获胜现在给你n和k,问能构造多少个序列是获胜的题解:奇偶分类+二进制考虑我们现在认为每个数的第k位都是1如果n为奇数,&的结果为1,⊕的结果也为1,此时第k位没有区别,我们去看第k-1位如果n为偶数,&的结果为1,⊕的结果为0,此时式子一定成立,剩下k-1位01随便填(因为第k位已经确定大小),方案就是(2k−1)原创 2021-08-23 15:24:13 · 200 阅读 · 0 评论 -
OR(牛客第八场)
OR题意:给你一个数组b和c(数值位于下标2到n)问是否存在一个a序列,bi=ai−1oraibi=a_{i-1} or a_{i}bi=ai−1orai , ci=ai−1+aic_{i}=a_{i-1}+a_{i}ci=ai−1+ai题解:我是这样想的,对于每一个bi和ci(i从2开始),都可以确定ai的取值情况,然后我们再计算bi+1和ci+1时,可以根据上一轮ai得到的情况来确定本轮ai+1的情况。如何通过bi和ci确定ai的取值呢?我们利用二进制来判断,对于bi和ci的每一原创 2021-08-09 21:01:01 · 134 阅读 · 0 评论 -
I love max and multiply HDU - 6971(详细解答)
I love max and multiply HDU - 6971题意:数组a和b,现在构造一个数组c,使得c[k]=max(a[i] * b[j]) , i&j>=k求数组c的和题解:我们可以考虑求出所有Dk=max(Ai * Bj)并满足i&j=k,然后再从后向前取,但是i&j=k不好求,那就改成Dk=max(Ai * Bj),满足k∈i&jk∈i&j,我们可以分别求k∈i和k∈j的情况就比如:k = 1010,k∈i&j,i&a原创 2021-07-25 15:14:03 · 428 阅读 · 0 评论 -
Lottery Gym - 102822L
Lottery Gym - 102822L题意:有n个盒子,每个盒子有x个球,每个球的数值为2a,问最多能组成多少数?答案mod 1e9+7题解:二进制思维题,浓浓的cf风格参考题解我们将数按照幂次进行排序(从小到大),然后对于每一位i,我们考虑下一位i+1的位置是否可以用第i位表示出来比如:当前位是(2,5),下一位是(4,1)当前位是有5个22,下一位是24,我们用4个22就可以表示出24,说明第i+1位可以被第i位表示。然后我们把第i位所能表示第i+1位的数量加给原本第i+1位的数量,原创 2021-07-09 17:28:22 · 253 阅读 · 1 评论