集合幂级数
L_0_Forever_LF
一个热爱OI的OIer
展开
-
BZOJ4589: Hard Nim
筛出不超过m的质数,然后可以DP f[i][j]=∑f[i−1][a]∗f[i−1][b](a xor b=j)f[i][j]=\sum f[i-1][a]*f[i-1][b](a \ xor\ b=j) 然后可以快速幂原创 2017-04-05 21:16:14 · 933 阅读 · 0 评论 -
BZOJ4036: [HAOI2015]按位或
vfk论文上的题 记U=2n−1U=2n−1U=2^n-1,因为∀T⊆SU|T=U∀T⊆SU|T=U\forall_{T\subseteq S}U|T=U 我们把p看成集合幂级数,那么有 ans=∑∞k=1k∗(pkU−pk−1U)ans=∑k=1∞k∗(pUk−pUk−1)ans=\sum_{k=1}^{∞}k*(p^k_U-p^{k-1}_U) 若我们定义集合幂级数f的第T项为fT=∑...原创 2018-03-09 09:59:20 · 538 阅读 · 0 评论 -
Codechef October Challenge 2017 Chef and Horcrux
将原序列排个序,从小到大枚举mex,可以算出选出mex为i的子序列概率为f[i] 要算选X个子序列,这些mex值在K进制下异或和为i的概率 其实就是对f做K进制下的FWT,每个位置求个快速幂在DFWT回来 考虑FWT本身就是m维的循环卷积,K进制和二进制不同的无非就是每一维大小由2变成K 做一个长度不为2的整数幂的循环卷积不能直接FFT(NTT),但是因为K很小,而FFT的本质又是插点值,...原创 2018-03-05 20:32:44 · 327 阅读 · 0 评论