取石子(sg函数)

Posted zzl-dreamfly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了取石子(sg函数)相关的知识,希望对你有一定的参考价值。

Alice和Bob有n桶石子,里面有ai个,他们每次只能其中一某堆里取奇数个,不能拿的人输,Alice总是先拿
1<=n<=200,1<=ai<=1e9
Input
第一行为 n
第二行为 n个数 ai
Output
最后获胜的人Alice或Bob
Sample Input
3
3 2 1
Sample Output
Bob

#include <iostream>
#include<algorithm>
#include <stdio.h>
#include <string>
#include <string.h>
#include <map>
#include <math.h>
#include <vector>
#include <set>
#include <queue>
#include <map>
#include <deque>
//#include <bits/stdc++.h>
using namespace std;
typedef  long long ll;
const int N=4e5+7;
const int mod=1e9+7;
inline ll read(){
    ll s=0,w=1;
    char ch=getchar();
    while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)w=-1;ch=getchar();}
    while(ch>=‘0‘&&ch<=‘9‘) s=s*10+ch-‘0‘,ch=getchar();
    return s*w;
}
int main()
{
    int x,n;
    while(cin>>n)
    {
        int ans=0;
        int m=n;
        while(n--)
        {
            cin>>x;
            if(x&1)
                ans++;
        }

        if(ans%2==0)
            cout<<"Bob"<<endl;
        else
            cout<<"Alice"<<endl;
    }
    return 0;
}

  

以上是关于取石子(sg函数)的主要内容,如果未能解决你的问题,请参考以下文章

取石子(sg函数)

BZOJ 3895: 取石子[SG函数 搜索]

[bzoj4589]Hard Nim——SG函数+FWT

SG函数模板(转)

Nim游戏

luoguP2148 [SDOI2009]E&D [sg函数][组合游戏]