位运算
小菜鸡加油
菜鸡
什么都能折磨
展开
-
P1939 【模板】矩阵加速(数列)
https://www.luogu.com.cn/problem/P1939#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#include<cstdio>#include<algorithm>#define de原创 2021-08-24 13:03:59 · 128 阅读 · 0 评论 -
B. GameGame(思维+博弈)
https://codeforces.com/problemset/problem/1383/B思路:开始以为是带博弈类的dp..发现不是...首先贪心,问题转化成了谁先拿到二进制的最高位。于是我们先把按照位数从高到低把每一个位的1的个数处理出来。如果该位是1个,那么先手获胜。如果该位是2个,那么先手取1,不管后面的剩余个数是奇数,还是偶数,总会回到先手取下一个1或者后手取下一个1的状态,所以如果个数%2==0.那么当前高位对于两者得分没有影响。如果该位是3个,那么先手先取..原创 2021-04-09 16:50:37 · 204 阅读 · 0 评论 -
D. Genius‘s Gambit(二进制构造+细节)
https://codeforces.com/contest/1492/problem/D思路:先说说自己错哪了吧.一个是细节,一个是构造的部分有问题了。中间的x只要相同就好,而我最开始是默认给x为0,导致0不够的数据wa掉。第二个就是k==0的特判,这个判了之后a==1的判直接就是no了。然后就是构造这个11xxx010xxx1这个的时候,注意构造完这部分后1/0剩下的个数能否>0,不判就wa64#include<iostream>#inclu原创 2021-03-02 12:47:43 · 220 阅读 · 0 评论 -
D. Zookeeper and The Infinite Zoo(位运算+规律)
https://codeforces.com/contest/1491/problem/D题意:有一个序列1,2,3,……,正无穷。u可以到u+v当且仅当u&v=v。有q个查询,每个查询给出两个点u和v,问u是否能到v。思路:打个小范围的表找一下规律.011-->101;011-->110;011-->100110-->1000;110---->1010;110--->1100;110 X-->111;可以发现,1的数量不会变多,原创 2021-03-02 10:50:56 · 358 阅读 · 0 评论 -
小G的LY数对(思维+异或性质+折半优化trick)
https://ac.nowcoder.com/acm/contest/11160/D思路:暴力枚举b中每一个数,枚举两位要用于修改的位置,然后将修改后的数在a中哈希查询是否存在相同数。O(30*30*n).很卡常,但是哈希换成手写卡过去了。但是还是要学习一下正解。所求可以表示成:x⊕y=(1<<i)⊕(1<<k);(i!=k)两边分别异或可以得到x⊕(1<<i)=y⊕(1<<k) (i!=k)如果提前先存下x^(1<<原创 2021-02-27 23:48:09 · 208 阅读 · 0 评论 -
D. Walk on Matrix(二进制构造)
https://codeforces.com/problemset/problem/1332/D思路:首先要知道这个dp为啥是错的。如果dp是转移和的话,那是对的。但是这个是错的,因为位运算不能保证之前的最大转移到这里就是最大。观察一下这个dp实际上是怎么贪心转移的。对于某处的(i,j)其转移是从上面和左边转移过来的,取其位运算大者。而二进制的性质就是高位的1大于其低位所有1之和。所以这个dp实际上是按照二进制的最高位的1来贪心的。知道了这一点后。我们就可以尝试构造了。往特殊原创 2021-02-14 12:46:35 · 138 阅读 · 0 评论 -
D. Little Girl and Maximum XOR(二进制贪心)
https://codeforces.com/problemset/problem/276/D小于1000的最大数是0111,两者的异或可以变成全1所以找最高位第一个不同的地方,剩下就可以贪心异或成全1#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<原创 2021-02-09 18:59:40 · 175 阅读 · 0 评论 -
D. Ehab the Xorcist(异或奇偶性构造)
https://codeforces.com/problemset/problem/1325/D思路:异或的性质:相同为0,不同为1.先把u这个数字转化成二进制形式发现有的是1,有的是0.那么1的那一位接下来如果这一位还要有1,那么只能是奇数,如果是0,那么只能是偶数。于是开始先把v减去需要构造的u的至少大小,减完如果是<0那么就说明不可能构造成功。不然就从高位开始,看是否整除当前位,整除的话看当前位是1还是0.。1的话次数要改成奇数。0的话次数要改成偶数。统计完之后如果v!=原创 2021-02-09 12:19:17 · 236 阅读 · 0 评论 -
牛客挑战赛45友人(思维+二分+位运算)
思路:出了位运算其实需要按位进行考虑,不过一拿到这个题的时候变量较多,不好下手。但是如果能定下一个量,就可以方便了。考虑二分z的上界,假如知道了z的上界,那么后面的式子就可以通过位运算的角度去枚举出最优解。那么怎么去知道z的上界,由于是等差数列,所以整个式子可以变成一个单调递增的(sort)。而且贪心去考虑,优先把数字大的变成min(Ai,z)更优。于是sort从小到大序列,然后从后面开始,o(n)枚举长度,在一个长度内确定下来能否满足有z使得前面不变的和+后面变小的和<=y。从而获得z的..原创 2020-11-14 12:40:36 · 122 阅读 · 0 评论 -
A. XORwice(思维+位运算)
https://codeforces.com/contest/1421/problem/A思路:二进制下考虑A和B。对A和B同一位如果是 1 0 ,那么x对应位不管取啥那一位最后加起来结果还是1如果是 0 1,那么x对应位不管取啥那一位最后加起来结果还是1如果是 0 0,那么x只要取0对应这位加来就是0如果是 1 1,那么x只要取1对应这位加起来就是0那么也就是说1 0-->1;0 1--->1;0 0--->0;1 1--->0;那么最终的结果就是a^b原创 2020-10-19 23:11:28 · 322 阅读 · 0 评论 -
C. Anu Has a Function(思维+位运算+贪心)
https://codeforces.com/contest/1300/problem/C和昨晚这场的div2的B有异曲同工之妙。思路:对每一个数位进行二进制位数的考虑。f(x,y)=(x|y)−y1 1 0 01 0 1 0可以发现,只有在出现了x出现了一次1的时候,这个时候的位才不是0,不然其他三个情况这一位都是0.那么贪心去考虑哪个数字的最高位只出现了一次零。O(32n)枚举即可。#include<iostream>#include<vector&..原创 2020-09-26 00:13:16 · 176 阅读 · 0 评论 -
B. Rock and Lever(思维+位运算+贪心)
https://codeforces.com/contest/1420/problem/B思路:位运算嘛..刚前天做了一道类似的题。考虑最高位的贪心.为什么呢?把数字按照二进制位去思考。ai&aj≥ai⊕aj比如1 1 00 0 1把这两个数进行题目的操作发现,&的操作会让最高位变成0,而异或会变成1,使得不满足题目的统计条件。再比如1 __ __1 __ ___每个位置1和0两个情况枚举每个情况会发现只有这种情况能满足条件。...原创 2020-09-25 23:04:47 · 595 阅读 · 0 评论 -
D. Vasya And The Matrix(位运算+矩阵构造)
https://codeforces.com/problemset/problem/1016/D一个矩阵,你知道每行,每列异或后的结果,然后还原这个矩阵,如果不能还原输出NO。假如一个矩阵x1 x2 x3 a1x4 x5 x6 a2b1 b2 b3会发现a1=x1^x2^x3,a2=x4^x5^x6;b1=x1^x4;b2=x2^x5;b3=x3^x6;可以得到:a1^a2=x1^x2^x3^x4^x5^x6;b1^b2^b3=x1^x2^x3^x4^x5^x6.所以要YES和N原创 2020-09-13 15:47:56 · 222 阅读 · 1 评论