HDU 1850 Being a Good Boy in Spring Festival 在春节做乖孩子(Nim博弈,微变形)
2015-05-14 15:16
519 查看
题意:
思路:
如果全部扑克牌数目异或的结果ans为0,则必输,输出0。否则,必须要给对方一个P状态,可以对所有扑克堆进行逐个排查,将ans^a[i]就可以得到除了a[i]之外其他扑克数的异或结果tmp,目的就是要使得tmp为0,那么肯定要从a[i]堆中拿走一些牌使得剩下的牌数异或tmp为0。可能出现的情况(1)tmp比a[i]还大,那么这不是正确的方案。(2)tmp=0,那么要将a[i]全部取走。(3)tmp<a[i],那么要取走a[i]-tmp张牌,留下tmp张,刚好异或结果为0。
AC代码
思路:
如果全部扑克牌数目异或的结果ans为0,则必输,输出0。否则,必须要给对方一个P状态,可以对所有扑克堆进行逐个排查,将ans^a[i]就可以得到除了a[i]之外其他扑克数的异或结果tmp,目的就是要使得tmp为0,那么肯定要从a[i]堆中拿走一些牌使得剩下的牌数异或tmp为0。可能出现的情况(1)tmp比a[i]还大,那么这不是正确的方案。(2)tmp=0,那么要将a[i]全部取走。(3)tmp<a[i],那么要取走a[i]-tmp张牌,留下tmp张,刚好异或结果为0。
#include <iostream> #include <cstdio> using namespace std; int a[101]; int main() { //freopen("input.txt", "r", stdin); int n; while(cin>>n,n) { for(int i=0; i<n; i++) scanf("%d",&a[i]); int ans=a[0], cnt=0; for(int i=1; i<n; i++) ans^=a[i]; if(!ans) cout<<"0"<<endl; //必输 else { for(int i=0; i<n; i++) { int tmp=ans^a[i]; if(a[i]-tmp>=0) cnt++; } cout<<cnt<<endl; } } return 0; }
AC代码
相关文章推荐
- hdu1850 Being a Good Boy in Spring Festival(nim博弈)
- HDU-1850-Being a Good Boy in Spring Festival 【nim博弈】
- [ACM] hdu 1850 Being a Good Boy in Spring Festival(Nim博弈)
- HDU 1850 Being a Good Boy in Spring Festival(nim博弈)
- [ACM] hdu 1850 Being a Good Boy in Spring Festival(Nim博弈)
- HDU - 1850 ——Being a Good Boy in Spring Festival(Nim博弈)
- hdu 1850 Being a Good Boy in Spring Festival(Nim博弈)
- [ACM] hdu 1850 Being a Good Boy in Spring Festival(Nim博弈)
- HDU 1850 Being a Good Boy in Spring Festival 【Nim博弈】
- HDU 1850 Being a Good Boy in Spring Festival(Nim博弈)
- HDU 1850 Being a Good Boy in Spring Festival (Nim博弈求第一步选择数)
- HDU 1850 Being a Good Boy in Spring Festival (Nim游戏变形)
- [Nim博弈]hdu 1850 Being a Good Boy in Spring Festival
- HDU 1850 Being a Good Boy in Spring Festival(Nim博弈)
- HDU 1850 Being a Good Boy in Spring Festival【标准Nim博弈,先手赢的方案数】
- HDU 1850-Being a Good Boy in Spring Festival(Nim博弈)
- HDU 1850 Being a Good Boy in Spring Festival(Nim博弈)
- hdu 1850 Being a Good Boy in Spring Festival (Nim博弈求第一步走法数)
- HDU 1850 - Being a Good Boy in Spring Festival【Nim博弈】
- HUD 1850 Being a Good Boy in Spring Festival【nim博弈变形】