本文主要是介绍hdu 1850 Being a Good Boy in Spring Festival 博弈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意就不解释了,这道题目刚开始做的时候一点思路没有,就吃了一把瓜子,没想到突然就想起来思路了,异或为0就是输也就是只要不为零就行,而且每次只能去其中一堆的几个,那么只要最后一个大于前面的异或和就行,你只要从最后一堆中取走多的就是一种方式。哈哈哈,虽然是道简单题目,但是感谢这堆瓜子。。
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int a[2000];
int main()
{int n;while(~scanf("%d",&n)&&n){int s=0;memset(a,0,sizeof(a));for(int i=1; i<=n; i++){scanf("%d",&a[i]);}for(int i=1; i<=n; i++){int ans=0;for(int j=1; j<=n; j++){if(i==j)continue;elseans^=a[j];}if(ans<a[i])s++;}printf("%d\n",s);}return 0;
}
这篇关于hdu 1850 Being a Good Boy in Spring Festival 博弈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!