H.Playing games
fwt
#include<bits/stdc++.h>
using namespace std;
const int N=1<<19;
const int mod=1000000007;
const int inv2=(mod+1)/2;
void fwt(int *a,int n)
{
for(int i=1;i<n;i<<=1)
for(int p=i<<1,j=0;j<n;j+=p)
for(int k=j;k<j+i;k++)
{
int x=a[k],y=a[i+k];
a[k]=(x+y)%mod;
a[i+k]=(x-y+mod)%mod;
}
}
void ifwt(int *a,int n)
{
for(int i=1;i<n;i<<=1)
for(int p=i<<1,j=0;j<n;j+=p)
for(int k=j;k<j+i;k++)
{
int x=a[k],y=a[i+k];
a[k]=1LL*(x+y)*inv2%mod;
a[i+k]=1LL*(x-y+mod)*inv2%mod;
}
}
int a[22][N],n;
int main()
{
scanf("%d",&n);
int s=0;
for(int i=1;i<=n;++i)
{
int x;
scanf("%d",&x);
a[0][x]=1;
s^=x;
}
a[0][0]=1;
fwt(a[0],N);
for(int i=1;i<22;++i)
for(int j=0;j<N;++j)
a[i][j]=1LL*a[i-1][j]*a[0][j]%mod;
if(s==0)printf("%d\n",n);
else
{
for(int i=0;i<22;++i)
{
ifwt(a[i],N);
if(a[i][s])
{
printf("%d\n",n-i-1);
break;
}
}
}
return 0;
}
/********************
********************/
H.Playing games的更多相关文章
- 「NowCoder Contest 295」H. Playing games
还是见的题太少了 「NowCoder Contest 295」H. Playing games 题意:选出尽量多的数使得异或和为$ 0$ $ Solution:$ 问题等价于选出尽量少的数使得异或和为 ...
- 2018牛客网暑假ACM多校训练赛(第八场)H Playing games 博弈 FWT
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round8-H.html 题目传送门 - https://www.no ...
- Nowcoder Playing Games ( FWT 优化 DP && 博弈论 && 线性基)
题目链接 题意 : 给出 N 个数.然后问你最多取出多少石子使得在 NIM 博弈中.后手必胜 分析 : Nim 博弈模型,后手必胜当且仅当各个堆的石子的数目的异或和为 0 转化一下.变成最少取多少石 ...
- POJ 1487:Single-Player Games 浮点数高斯消元
Single-Player Games Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1287 Accepted: 36 ...
- (转) Deep Reinforcement Learning: Playing a Racing Game
Byte Tank Posts Archive Deep Reinforcement Learning: Playing a Racing Game OCT 6TH, 2016 Agent playi ...
- UVA - 11927 Games Are Important (SG)
Description Games Are Important One of the primary hobbies (and research topics!) among Computing ...
- Alice and Bob(2013年山东省第四届ACM大学生程序设计竞赛)
Alice and Bob Time Limit: 1000ms Memory limit: 65536K 题目描述 Alice and Bob like playing games very m ...
- 2012多校3.A(用O(log(n))判断b^k % a == 0)
Arcane Numbers 1 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Su ...
- PortSentry是入侵检测工具中配置最简单、效果最直接的工具之一
https://sourceforge.net/projects/sentrytools/ [root@localhost ~]# tar -xzvf portsentry-1.2.tar.gz [r ...
随机推荐
- 怎样把QQ群降级(1000人降到200或500人,500人降到200)
怎样把QQ群降级(1000人降到200或500人,500人降到200)QQ群只有升级的选项,没有降级选项,一旦升级为1000人,就无法直接降级为200人或500人,建群时选择了500人也无法降到200 ...
- C/C++之static函数与普通函数
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量.全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式.这两者在存储方式上并无不同.这两者的区别虽在于非静态全局变量 ...
- AngularJs表单自动验证
angular-auto-validate 地址:https://github.com/jonsamwell/angular-auto-validate 引用: <script src=&quo ...
- bzoj1651 / P2859 [USACO06FEB]摊位预订Stall Reservations
P2859 [USACO06FEB]摊位预订Stall Reservations 维护一个按右端点从小到大的优先队列 蓝后把数据按左端点从小到大排序,顺序枚举. 每次把比右端点比枚举线段左端点小的数据 ...
- WebService(JAX-WS、XFire、Axis三种)获取客户端ip
WebService(JAX-WS.XFire.Axis三种)获取客户端ip JAX-WS.XFire.Axis三种webservice的获取客户端IP的简单实现过程: 1,基于JDK6 jax-ws ...
- 20145332 MAL_简单后门
20145332 MAL_简单后门 用NC获取远程主机的shell 2.1.1 Windows获得Linux的权限 首先要在Windows主机下安装ncat.exe,安装完成后需要配置环境变量path ...
- MBR主引导扇区解析2
unsigned AnsiChar data[] = { 0x33, 0xC0, 0x8E, 0xD0, 0xBC, 0x00, 0x7C, 0x8E, 0xC0, 0x8E, 0xD8, 0xBE, ...
- BZOJ2662: [BeiJing wc2012]冻结 spfa+分层图
Description “我要成为魔法少女!” “那么,以灵魂为代价,你希望得到什么?” “我要将有关魔法和奇迹的一切,封印于卡片之中„„” 在这个愿望被实现以后的世界里,人们享 ...
- gulp报错插件gulp-notify 配置项
var notify = require("gulp-notify"); module.exports = function(){ var args = Array.prototy ...
- thymeleaf和easyui配合可能出现的错误
thymeleaf和easyui 在easyui的内页,不再使用th:href引入静态资源文件. 在easyui页面中,script执行easyui自己的方法要加入: <script th:in ...