尼姆博弈的典型例题
2014-06-24 15:06
239 查看
#include<iostream>
using namespace std;
int main()
{
int n;
int i,j;
int a[100+5];
int ans,tmp,cnt;
while(cin>>n&&n)
{
for(i=0;i<n;i++) cin>>a[i];
ans=a[0];
for(i=1;i<n;i++) ans^=a[i];//求出所有堆的按位与,为后面做准备
tmp=cnt=0;
//根据按位与的定义,与a【i】与所有按位与==除a【i】所有的按位与
//因此只要得到一个理想的值小于这个堆的张数,就一定可以取出如此多张使对方到达必败点
for(i=0;i<n;i++)
{
tmp=ans^a[i];
if(tmp<a[i]) cnt++;
}
cout<<cnt<<endl;
}
return 0;
}
cout<<cnt<<endl;
}
return 0;
}
using namespace std;
int main()
{
int n;
int i,j;
int a[100+5];
int ans,tmp,cnt;
while(cin>>n&&n)
{
for(i=0;i<n;i++) cin>>a[i];
ans=a[0];
for(i=1;i<n;i++) ans^=a[i];//求出所有堆的按位与,为后面做准备
tmp=cnt=0;
//根据按位与的定义,与a【i】与所有按位与==除a【i】所有的按位与
//因此只要得到一个理想的值小于这个堆的张数,就一定可以取出如此多张使对方到达必败点
for(i=0;i<n;i++)
{
tmp=ans^a[i];
if(tmp<a[i]) cnt++;
}
cout<<cnt<<endl;
}
return 0;
}
cout<<cnt<<endl;
}
return 0;
}
相关文章推荐
- POJ2411 轮廓线动态规划典型例题
- HDU 1849 Rabbit and Grass【尼姆博弈】
- 博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)
- 尼姆博弈 (附:HDU1850)
- 【典型例题】TreeSet排序
- poj 2975 Nim 尼姆博弈
- 尼姆博弈
- HDU1907 John (尼姆博弈变形)
- 博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈,sg函数)
- 尼姆博弈
- ACM-尼姆博弈之John——hdu1907
- 尼姆博弈(Nimm's Game) 取石子
- 线段树-基础,典型例题的完整代码
- POJ 3480 & HDU 1907 John(尼姆博弈变形)
- 【典型例题】购物车模型
- POJ典型算法例题题号
- 尼姆博弈——ZOJ Problem Set - 3529
- 10.5例题:动态规划典型题--最长公共子序列
- 大端、小端存储以及典型例题分析
- 关于 10 个自增典型例题中例 7 的解释