Being a Good Boy in Spring Festival HDOJ(ニムゲーム)

2166 ワード

Being a Good Boy in Spring Festival
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5604    Accepted Submission(s): 3343
Problem Description
1年間外国にいる両親はいつも心配している.
春節に家に帰って何日いい子になれるの?
冬休みに次のことをやってみよう
母に付き添って料理場をぶらぶらする
こっそりお父さんにプレゼントを買ってあげます.
積極的に茶碗を洗うように強く要求する
ある日早起きして両親に心を込めて朝食を作ってあげました
もしよろしければ、お父さんとお母さんに言ってもいいです.
游びましょうACM授业に通っていますね~
次は二人の小さなゲームです.机の上にM山のトランプがあります.各スタックの数はそれぞれNi(i=1...M)である.二人は交代で行う.一歩歩くたびに任意に山を選んで、その中の任意のカードを取り出すことができます.テーブルの上のトランプが全部取れば、ゲームは終わります.最後にカードを取った人は勝者だ.
先手が勝つか負けるかを研究したくないので、皆さんに聞きたいだけです.
——「先手の人が勝ちたいなら、第一歩は何種類の選択肢がありますか?」
 
Input
入力データは複数の試験用例を含み、各試験用例は2行を占め、まず1行に1つの整数M(1 
Output
先手の人が勝つことができる場合は、最初のステップで実行可能なシナリオ数を出力してください.そうしないと、0を出力してください.各インスタンスの出力は1行を占めます.
 
Sample Input

   
   
   
   
3 5 7 9 0

 
Sample Output

   
   
   
   
1

x^x=0;x^0=x;現在のニムゲームの特徴は、いくつかのスタックまたはスタックから1つまたはスタックのいくつかを選択することです.
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[128];
int main()
{
    int n,m,i,cla,ans,s;
    ios::sync_with_stdio(false);
    while(cin>>m&&m)
    {
        s=ans=0;
        for(i=0;i<m;i++)
        {
            cin>>a[i];
            ans^=a[i];
        }
        for(i=0;i<m;i++)
        {
            if( (ans^a[i])<a[i])//<pre name="code" class="cpp">(    ,    )ans^a[i]     a[i]       ,         <a[i]        
                s++;
        }
        printf("%d
",s); } return 0; }