Being a Good Boy in Spring Festival

Problem Description

一年在外 父母时刻牵挂
春节回家
你能做几天好孩子吗
寒假里尝试做做下面的事情吧

陪妈妈逛一次菜场
悄悄给爸爸买个小礼物
主动地 强烈地
要求洗一次碗
某一天早起 给爸妈用心地做回早餐

如果愿意 你还可以和爸妈说
咱们玩个小游戏吧
ACM课上学的呢~

下面是一个二人小游戏:桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i=1…M);两人轮流进行;每走一步可以任意选择一堆并取走其中的任意张牌;桌子上的扑克全部取光,则游戏结束;最后一次取牌的人为胜者。
现在我们不想研究到底先手为胜还是为负,我只想问大家:
——“先手的人如果想赢,第一步有几种选择呢?”

Input

输入数据包含多个测试用例,每个测试用例占2行,首先一行包含一个整数M(1<M<=100),表示扑克牌的堆数,紧接着一行包含M个整数Ni(1<=Ni<=1000000,i=1…M),分别表示M堆扑克的数量。M为0则表示输入数据的结束。

Output

如果先手的人能赢,请输出他第一步可行的方案数,否则请输出0,每个实例的输出占一行。

Sample Input

3
5 7 9
0

Sample Output

1

分析:

先看:http://acm.hdu.edu.cn/forum/read.php?tid=10617&page=1

定义:若所有火柴数异或为0,则该状态被称为利他态,用字母T表示;否则, 为利己态,用S表示。

  1. [定理1]:对于任何一个S态,总能从一堆火柴中取出若干个使之成为T态。
  2. [定理2]:T态,取任何一堆的若干根,都将成为S态。
  3. S态,只要方法正确,必赢。
  4. [定理4]:T态,只要对方法正确,必败。

然后对于本题,属于第一类题;最后答案就是,我们能有多少种办法使得从S态变为T态,让对手必输。同时判断一下,是否 a[i] ^ k < a[i], 有可能 k 值的最高位不在a[i]中,例如 10 ^ 1 = 11 < 10。

 #include<stdio.h>
int main()
{
int a,b[],i,s,n,k;
while(scanf("%d",&a)!=EOF)
{
n=;k=;s=;
for(i=;i<;i++)
b[i]=;
if(a==)
break;
for(i=;i<a;i++)
{
scanf("%d",&b[i]);
s=s^b[i];
}
for(i=;i<a;i++)
{
k=s^b[i];
if(k<b[i])
n++;
}
printf("%d\n",n);
}
return ;
}

最新文章

  1. 多人开发Xcode工程冲突,打不开解决办法
  2. wex5 实战 单页模式下的多页面数据同步
  3. jQueryMobile控件之展开与合并
  4. 插件~Nuget中包与包的依赖关系
  5. 一个inline-block的样式。
  6. Nginx &amp; AWStats 安装、配置、使用
  7. mysql 拷贝表插入新的表
  8. JAVA简单学习
  9. Sublime Text 2&amp;3中输入法不跟随光标移动的问题的解决方法
  10. MVC简单分页(未实现无刷新分页)
  11. Flink Program Guide (8) -- Working with State :Fault Tolerance(DataStream API编程指导 -- For Java)
  12. 错误: 找不到或无法加载主类 tomcat-juli.jar
  13. Java文件上传细讲
  14. 【CF235C】Cyclical Quest(后缀自动机)
  15. 利用百度地图api实现定位
  16. 【原创开源】网络版二代双通道示波器开源发布,支持电脑,手机和Pad等各种OS平台访问
  17. ffmpeg常用转换命令
  18. (转)Spring Boot(三):Spring Boot 中 Redis 的使用
  19. 用原型封装一个操作DOM的例子
  20. [Chrome]点击页面元素后全屏

热门文章

  1. 13、Qt界面布局
  2. 51 Nod 1556计算(默慈金数的应用)
  3. The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases.
  4. php面向对象 练习
  5. SQL Server高可用实现方案
  6. leetcode 103二叉树的锯齿形层次遍历
  7. 四十一:数据库之SQLAlchemy之limlt、、slice、offset及切片
  8. 【汇总】Windows linux 敏感目录 路径汇总
  9. 【DVWA】Command Injection(命令注入)通关教程
  10. delphi dbgrid数据导出为excel