![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
位运算
qkoqhh
这个作者很懒,什么都没留下…
展开
-
codeforce 620E(dfs序+线段树+位运算)
个人感觉是道不错的题。。很好的帮我理解了dfs序与链剖之间的关系。。两者都是把树结构转化成区间的方法,并且通常需要配合数据结构加以维护。但dfs序侧重与顺序遍历,能够处理子树问题;链剖侧重重链处理,能够处理树中2点之间的链。看来dfs序有必要好好重视一番。。求dfs序后转化成区间,然而这次已经不是单点修改了。。而是子树一起修改,那么就只能用线段树进行维护了。。一开始的思路是记录关键值然后进原创 2017-12-28 21:47:11 · 233 阅读 · 0 评论 -
uoj350(位运算性质)
orz这tm才第一题就那么神啊。。还好没参加比赛。。需要考虑到一种组合,xxxxxx1和xxxxxx0,xor之后是1,可以看出,每对奇偶数异或之后都能变成1,这样将我们就考虑在1-n中,留下n,让前面的数异或出0。。将对应的奇偶数一一配对之后,剩下了1(缺了0配对)和配对出来的t个1,还有n。。。可以看出这种情况是得n为偶数,将t求出。。若t为偶数个,异或出来是0,那就要把1去掉,如果t为奇数就...原创 2018-02-18 19:26:01 · 327 阅读 · 0 评论 -
luogu2761(状态压缩+bfs)
怎么看都像是状压bfs,因为时间复杂度已经快爆了所以感觉应该会有什么更快的方法。。毕竟是放在网络流24题嘛。。结果真的是状压bfs= =!(心中踏过无数只草泥马)状压bfs好像大学还没写过。。还是留个念。。。直接位运算压缩状态。。然后对于那写包不包含的啦,去bug加bug啦,要分开来压缩,就是分成包含的,不包含的,加bug的,去bug的,独立开来处理。。。时间复杂度大概是O(m原创 2018-05-05 12:34:50 · 149 阅读 · 0 评论 -
codeforces485C(位运算->建图)
这个题比较套路,貌似cls给noip模拟赛出过相同的题。。orznoip什么时候这么难了啊qaq然后这个关键问题就在建图了,由于直接连边数太多,必须考虑将边的规模压缩。。然后方法就是对每个数i向去掉其中一个1后的数连边(这里都是单向边),最多n条边。。然后如果出现了数组中存在的数。。那么就向反转后的数连边。。然后发现这么连可以将x&y的点都给连起来。。而那些不在一个块上的是连不到的。。然后...原创 2018-05-30 18:36:42 · 363 阅读 · 0 评论 -
NCPC2017D(位运算+bfs)
题目链接:http://codeforces.com/group/Us3rfLfgWv/contest/101572真的是巧。。打场cf做了里面的2道题就知道这题该怎么做了。。http://codeforces.com/contest/986/problem/Chttp://codeforces.com/contest/986/problem/A其实,给定的m个数其实都在2^n内。。所以只要建个包...原创 2018-05-30 22:54:08 · 262 阅读 · 0 评论 -
nowcoder多校4C(数位DP)
好久没写数位DP了。。手好生啊。。这题的难点在于找规律。。打表看起来并不容易看出来(给打表看出规律的神仙跪了orz要算a[i]的值,要将i转化成二进制,对连续的二进制位,如果相同则+1,不同则-1,然后就能算出a[i]的值了。。这个的证明大概是这样。。可以这样分类讨论,n%4==3或n%4==0时(即最后2位相同时)为1, n%4==2或n%2==1(即最后2位不同时)为-1然...原创 2018-07-29 20:29:59 · 217 阅读 · 0 评论 -
牛客训练(状压DP)
有想到要状压可是不知道要用压缩后的状态来表示什么,题还是做太少了。。设d[S]表示已经选择S的情况下的最小冲突(即以后再选的优先级都要比S里面的都小),这样转移的时候只要枚举S的子集,分离成原有的子集V和后加的子集T合并成S这样来转移就行了。。枚举的复杂度计算可以根据集合的size分类计算,所以是然而转移的时候计算比较复杂,一方面是T自己和自己优先级相同的冲突,一个是V和T的冲突,如果...原创 2018-10-06 19:47:42 · 159 阅读 · 0 评论 -
cf1097F(bitset+莫比乌斯反演)
题意:给定n个集合,要求支持4个操作:1.将集合初始化成{v}2.令集合Z=集合X∪集合Y3.令集合4.查询集合里面v出现的次数并模上2 终于放假了。。好久以前的题。。答案只需要模2就很容易想到用二进制来表示,那么可以直接上bitset,那么合并相当于做一次模2加,直接异或就行了。。然后对于操作3,可以直接维护因子出现的个数,维护因子出现次数为g(n),若n在集合中...原创 2019-01-18 22:33:20 · 317 阅读 · 0 评论