博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ.4589.Hard Nim(FWT)
阅读量:5260 次
发布时间:2019-06-14

本文共 1002 字,大约阅读时间需要 3 分钟。

题意即,从所有小于\(m\)的质数中,选出\(n\)个数,使它们异或和为\(0\)的方案数。

\(G(x)=[x是质数]\),其实就是对\(G(x)\)\(n\)次异或卷积后得到多项式的第\(0\)项。
如果\(n\)很小,可以一次次的FWT。事实上在第一次FWT之后,直接快速幂就行了,不需要中间IFWT转回去。

//1652kb    4352ms#include 
#include
#include
#include
#define gc() getchar()#define inv2 500000004#define mod 1000000007#define Add(x,y) (x+y>=mod?x+y-mod:x+y)#define Sub(x,y) (x
>2];inline int read(){ int now=0;register char c=gc(); for(;!isdigit(c);c=gc()); for(;isdigit(c);now=now*10+c-'0',c=gc()); return now;}void Init(int n){ not_P[1]=1; for(int i=2,cnt=0; i<=n; ++i) { if(!not_P[i]) P[++cnt]=i; for(int j=1; j<=cnt&&i*P[j]<=n; ++j) { not_P[i*P[j]]=1; if(!(i%P[j])) break; } }}void FWT(int *a,int lim,int opt){ for(int i=2; i<=lim; i<<=1) for(int j=0,mid=i>>1; j
>=1) { if(k&1) for(int i=0; i

转载于:https://www.cnblogs.com/SovietPower/p/10024265.html

你可能感兴趣的文章
hdu1565 用搜索代替枚举找可能状态或者轮廓线解(较优),参考poj2411
查看>>
bzoj3224 splay板子
查看>>
程序存储问题
查看>>
Mac版OBS设置详解
查看>>
优雅地书写回调——Promise
查看>>
android主流开源库
查看>>
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
Ubuntu下面安装eclipse for c++
查看>>
让IE浏览器支持CSS3圆角属性的方法
查看>>
巡风源码阅读与分析---nascan.py
查看>>
LiveBinding应用 dataBind 数据绑定
查看>>
Linux重定向: > 和 &> 区别
查看>>
nginx修改内核参数
查看>>
C 筛选法找素数
查看>>
TCP为什么需要3次握手与4次挥手(转载)
查看>>
IOC容器
查看>>