Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u

Submit Status

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
题意如题。
题解:考察的是对尼姆博弈本质的理解。如果先手能赢则异或值不为0,先手的第一步肯定是通过
   修改一个数的值把这些数的异或值变为0。假设有n个数,设其中一个数为a是要减少的数,
   那么a的值必须大于除了a以外的n-1个数的异或值才可以,只有大于才能通过a的减少使得
   所有数的异或值为0,如果等于那说明所有数的异或值为0,先手必败。如果小于那么无论怎么
   减少a都无法使得总异或值为0,二进制的表示中一定会有至少一个1存在着。
   所以遍历每个数,看哪些数是刚才所述的符合条件的a,统计这样的数有多少个即为最终结果。
#include <iostream>
using namespace std;
int main()
{
int n;
while(cin>>n&&n)
{
int a[],ans=,cnt=;
for(int i=;i<n;i++)
{
cin>>a[i];
ans^=a[i];
}
for(int i=;i<n;i++)
{
if(a[i]>(ans^a[i]))//注意加括号
cnt++;
}
//以下这段话看不懂也没关系。 在本代码中 1.可以将cout 0那句去掉 2.可以在大于判断的时候加上等号
//但是两者不能同时用 因为有一个数的等于成立那么所有的数的等于都成立 即cnt=n 也就是异或为0先手必败的情况
//如果两者同时用会把先手必败的输出0的情况变为输出n 这样是错误的 但是单独用没问题
if(ans)
cout<<cnt<<endl;
else
cout<<<<endl;
}
return ;
}

HDU1850 Being a Good Boy in Spring Festival(博弈)的更多相关文章

  1. HDU1850 Being a Good Boy in Spring Festival

    /* HDU1850 Being a Good Boy in Spring Festival http://acm.hdu.edu.cn/showproblem.php?pid=1850 博弈论 尼姆 ...

  2. Being a Good Boy in Spring Festival(博弈)

    Being a Good Boy in Spring Festival Problem Description一年在外 父母时刻牵挂春节回家 你能做几天好孩子吗寒假里尝试做做下面的事情吧 陪妈妈逛一次 ...

  3. HDU1850 - Being a Good Boy in Spring Festival 【尼姆博弈】

    一年在外 父母时刻牵挂  春节回家 你能做几天好孩子吗  寒假里尝试做做下面的事情吧  陪妈妈逛一次菜场  悄悄给爸爸买个小礼物  主动地 强烈地 要求洗一次碗  某一天早起 给爸妈用心地做回早餐  ...

  4. hdu 1850 Being a Good Boy in Spring Festival(Nimm Game)

    题意:Nimm Game 思路:Nimm Game #include<iostream> #include<stdio.h> using namespace std; int ...

  5. Being a Good Boy in Spring Festival(尼姆博弈)

    Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 ...

  6. Being a Good Boy in Spring Festival(杭电1850)(尼姆博弈)

    Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32 ...

  7. HDU 1850 Being a Good Boy in Spring Festival (Nim博弈)

    Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32 ...

  8. HDU.1850 being a good boy in spring festival (博弈论 尼姆博弈)

    HDU.1850 Being a Good Boy in Spring Festival (博弈论 尼姆博弈) 题意分析 简单的nim 博弈 博弈论快速入门 代码总览 #include <bit ...

  9. HDUOJ-------Being a Good Boy in Spring Festival

    Being a Good Boy in Spring Festival Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32 ...

随机推荐

  1. NOIP2005提高组 过河

    题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数 ...

  2. HDU2222 Keywords Search [AC自动机模板]

    Keywords Search Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others ...

  3. laravel框架中的session问题

    这两天一直在鼓捣服务器,配置环境,在搭建laravel的过程之中,发现了laravel中的session的一些问题,这里总结一下: (1):我在服务器上搭建了多个sever,为了测试学习,分别使用不同 ...

  4. POJ3744Scout YYF I(求概率 + 矩阵快速幂)

    Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6757   Accepted: 1960 Descr ...

  5. RecyclerView的使用方法

    1.添加.jar包 File -> Project-Structure -> 左下角 “app” -> Dependencies -> 右上角“+” -> File de ...

  6. spring事务学习(转账案例)(二)

    四.通过springAop进行事务管理 继续从第一个无事务操作的项目中进行更改. 只修改applicationContext.xml配置文件,注意设置transaction引用 <?xml ve ...

  7. 初学Struts2-自定义拦截器及其配置

    自定义拦截器,首先新建一个继承自AbstractInterceptor类的类,然后重写intercept方法,代码如下 public class HelloInterceptor extends Ab ...

  8. SQL防注入程序 v1.0

    /// ***************C#版SQL防注入程序 v1.0************ /// *使用方法: /// 一.整站防注入(推荐) /// 在Global.asax.cs中查找App ...

  9. mysql 出现错误Incorrect file format

    REPAIR TABLE xx_messages USE_FRM;

  10. gnl总结(#,%,$)

    Ognl表达式struts标签“%,#,$” 1.什么是Ognl? OGNL(Object-Graphic Navigation Language),对象图道行语言.是一种可以方便操作对象属性的开源表 ...