位运算
DOFYPXY
这个作者很懒,什么都没留下…
展开
-
[BZOJ2303][APIO2011]方格染色 异或+并查集
这题首先要推式子: 题目条件即为A(i-1,j-1) xor A(i-1,j) xor A(i,j-1) xor A (i,j)=1. 又有A(i-1,j-2) xor A(i-1,j-1) xor A(i,j-2) xor A(i,j-1)=1. 相邻两列两式异或得A(i-1,j-2)xor A(i,j-2) xor A(i-1,j) xor A(i,j)=0. 就这样一直递推过去,原创 2017-04-25 09:02:22 · 634 阅读 · 0 评论 -
[2017纪中10-23]幸运值 组合数学 位运算
题目链接:https://jzoj.net/senior/#main/show/5414 显然,每一位是独立的。对每一位分别考虑贡献。 那么,对于每一位,这些数中哪些是1哪些是0不重要,重要的是有几个1几个0。 假设第x位有b个1,n-b个0,求选出奇数个(不超过k)1的方案数。显然等于sigma(C(b,i)*C(n-b,k-i)){1<=i<=k且i为奇数}。 预处理阶乘和阶乘逆元。注意原创 2017-10-23 20:59:32 · 397 阅读 · 0 评论 -
[ARC084]F - XorShift 位运算+多项式
题面 首先把一个二进制数ak,ak-1,..,a0看成多项式ak*x^k+ak-1 * x^( k-1) *… *a0,系数再模2意义下计算。 那么该数乘2相当于多项式*x,两个数xor相当于两个多项式相加。 所以我们定义gcd(P,Q)为多项式P和Q的最大公约数,计算方法如下: 设degP>=degQ(若degP#include<iostream>#include<cstdio>#in原创 2017-12-06 20:04:18 · 1352 阅读 · 0 评论 -
[ARC086]F - Shift and Decrement 位运算+数论+DP
题面 可以证明,在最后一次÷2÷2操作之前,不必要进行连续的两次−1-1操作。因为连续的−1-1操作可以通过先÷2÷2来减少操作次数。 我们定义popcount(x)popcount(x)来表示xx二进制表示中11的个数,那么假设做了kk次÷2÷2操作(可以发现kk不会超过6060),那么可以把所有操作等价为: 1. −p-p (p2k)(p,耗费popcount(p)popcount(p原创 2017-12-17 12:43:49 · 660 阅读 · 0 评论 -
[BZOJ2098]又是nand 树链剖分+位运算
观察nand这个运算,发现它有交换律但是没有结合律,所以就不要考虑各种差分或者分段计算合并的方法,而且得按顺序维护。 首先可以想到树链剖分,因为有顺序,所以线段树区间上要维护从lll到rrr的运算结果和从rrr到lll的运算结果,而且对于运算结果还与进来的初值有关,发现每一位是独立的,我们要对每一位维护初值是0/10/10/1,运算顺序是l→r/r→ll→r/r→ll\to r/r \to l的...原创 2018-04-22 22:13:42 · 625 阅读 · 0 评论 -
[联合集训6-22] 疑惑 位运算+FFT
根据期望的线性性,我们可以对每一位分别考虑其为111的概率。那么假设一位有c0c0c_0个000,c1c1c_1个111,选kkk个xor和为111的方案数显然为∑c1i=0[i|2](c1i)(c0k−i)∑i=0c1[i|2](c1i)(c0k−i)\sum_{i=0}^{c_1}[i|2]{c_1\choose i}{c_0\choose k-i}。FFT即可。 代码:#inclu...原创 2018-06-22 21:18:26 · 418 阅读 · 0 评论