hdu3032sg打表找规律

Posted walfy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu3032sg打表找规律相关的知识,希望对你有一定的参考价值。

先打个表冷静一下

技术分享
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cassert>
#include<iomanip>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define pi acos(-1)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")

using namespace std;

const double g=10.0,eps=1e-9;
const int N=1000+10,maxn=111117,inf=11111;

int f[N],sg[N],Hash[N];//f是可以取走的石子书
void getsg(int n)
{
    memset(Hash,0,sizeof Hash);
    for(int i=0;i<n;i++)
        Hash[sg[i]]=1;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            if(i+j==n)
               Hash[sg[i]^sg[j]]=1;
    for(int i=0;;i++)
        if(!Hash[i])
        {
            sg[n]=i;
            break;
        }
    cout<<n<<" "<<sg[n]<<endl;
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    for(int i=1;i<=100;i++)
        getsg(i);
    return 0;
}
View Code

可以看出sg【i】=i;i%4==1||2

sg[i]=i+1,i%4==3

sg[i]=i-1,i%4==4

技术分享
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cassert>
#include<iomanip>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define pi acos(-1)
#define ll long long
#define mod 1000000007
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
#pragma comment(linker, "/STACK:1024000000,1024000000")

using namespace std;

const double g=10.0,eps=1e-9;
const int N=1000+10,maxn=111117,inf=11111;


int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t,n,a;
    cin>>t;
    while(t--){
        cin>>n;
        int ans;
        for(int i=0;i<n;i++)
        {
            cin>>a;
            if(a%4==3)a++;
            else if(a%4==0)a--;
            if(i==0)ans=a;
            else ans=ans^a;
        }
        if(!ans)cout<<"Bob"<<endl;
        else cout<<"Alice"<<endl;
    }
    return 0;
}
View Code

 

以上是关于hdu3032sg打表找规律的主要内容,如果未能解决你的问题,请参考以下文章

[hdu-5795]A Simple Nim 博弈 尼姆博弈 SG函数打表找规律

HDU 4203 博弈 打表找规律

hdu5795 A Simple Nim 求nim求法,打表找sg值规律 给定n堆石子,每堆有若干石子,两个人轮流操作,每次操作可以选择任意一堆取走任意个石子(不可以为空) 或者选择一堆,把它分成

石油大训练 Little Sub and Johann (博弈SG打表找规律)

HDU 4731 Minimum palindrome 打表找规律

Just Random HDU - 4790 思维题(打表找规律)分段求解