
二进制/位运算
文章平均质量分 55
jzq233jzq
这个作者很懒,什么都没留下…
展开
-
二进制乱搞——Luogu3917 异或序列
题面:Luogu3917 我的做法好像比较傻。。。 看到这种题首先想到前缀。首先前缀xor是不是很资辞? 我的做法呢就是先把所有数按二进制位拆开,然后每一位都做两次前缀。 首先对数位做一次前缀xor,记到ss数组里,再对s数组做一次前缀和,记到ssss里。 然后我们可以对于每一位枚举起始位置i,然后从i开始向后到n统计答案。 首先考虑到ss数组非0即1,所以这里处理将会非常方便。 我们原创 2017-08-16 10:46:09 · 730 阅读 · 0 评论 -
位运算贪心——BZOJ3668/Luogu2114 [Noi2014]起床困难综合症
题面:Luogu2114 BZOJ3668 既然都是一堆位运算了,我们按位来搞好了 一个很显然的贪心策略,高位选0对接下来选择更有利 所以我们直接按位从高到低贪心,计算这一位是0或1对答案的贡献,如果选1贡献大于0,选1,否则选0 大于m了选0 然后就好了。。。#include <cstdio>#include <algorithm>#include <cmath>#include <cstrin原创 2017-07-11 09:45:23 · 288 阅读 · 0 评论 -
二进制乱搞——Luogu1582 倒水
题面:Luogu1582 发现这题以前膜你赛做过啊。。。 当时的算法是开一个栈,然后怎么搞一下的什么(忘了666) 当时是80分T了两个点,然后听axs说可以优化然后AC 我说一下现在我的做法啊 因为一样的可以合并,所以我们把原来的数量转成二进制 首先我们可以发现,二进制位上0表示已经合并或者能够合并的位置,1表示不能够再合并的位置 我们又发现,转化之后原来能够合并的都合并了,所以剩下原创 2017-06-25 18:47:47 · 298 阅读 · 0 评论 -
可持久化Trie——51nod1295 XOR key
题面:51nod1295 第一次yy出了可持久化Trie哈哈哈…… 这题xor其实就是老套路了,其实就是在Trie树上跑一下就好了 我们按照从高位到低位的顺序找,如果这一个二进制位有不同的,那么就往这边走,xor值加上2i2^i即可 这题的关键就是区间的问题了,所以就是一个可持久化Trie就可以了 具体是怎么yy出来的?按照主席树的写法就可以了#include <cstdio>#incl原创 2017-09-23 22:26:21 · 240 阅读 · 0 评论 -
异或——LibreOJ6087 毒瘤题/LibreOJ6232 毒瘤题加强版
题面:loj6087 我是不会告诉你SW_Wind(就是那个小江)是我同学嘿嘿嘿。。。 然而题好像是一个叫做SHENZHEBEI的dalao(也是我同学)出的。。。 首先xor有个性质,一个数被xor两次之后等于0 所以k=1的情况就很好搞了,直接一个一个xor过去最后剩下的就是答案了 那么k=2怎么做呢?首先我们还是一个一个xor过来,设为p。我们可以发现p=数1 xor 数2(就那两个原创 2017-08-19 17:06:23 · 999 阅读 · 0 评论