zoukankan      html  css  js  c++  java
  • [BeiJing2009 WinterCamp]取石子游戏 Nim SG 函数

    Code:

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    #define maxn 1003
    int arr[13],step[13],SG[maxn];
    bool vis[maxn];
    int main(){
        //freopen("input.in","r",stdin);
        int n,m,MAX=0,ans=0;
        scanf("%d",&n);
        for(int i=1;i<=n;++i) scanf("%d",&arr[i]), MAX=max(MAX,arr[i]);
        scanf("%d",&m);
        for(int i=1;i<=m;++i) scanf("%d",&step[i]);
        SG[0]=0;
        for(int i=1;i<=1000;++i) {
            memset(vis,0,sizeof(vis));
            for(int j=1;j<=m&&step[j]<=i;++j) vis[SG[i-step[j]]]=1;      
            for(int j=0;;++j)
                if(!vis[j]){
                    SG[i]=j;
                    break;
                }
        }
        for(int i=1;i<=n;++i) ans^=SG[arr[i]];
        if(ans==0)printf("NO");
        else printf("YES
    ");
        for(int i=1;i<=n;++i)
        {
            for(int j=1;j<=m&&step[j]<=arr[i];++j)
                if((ans^SG[arr[i]])==SG[arr[i]-step[j]]) {
                    printf("%d %d",i,step[j]);
                    return 0;
                }
        }
        return 0;
    }
    

      

  • 相关阅读:
    [IOI2013]Dreaming
    Lost Cows
    Mobile Service
    [POI2005]Bank notes
    [CTSC2007]动物园zoo
    [CF1093F]Vasya and Array
    [雅礼集训 2017 Day1]市场
    [APIO2014]序列分割
    [CEOI2004]锯木厂选址
    [APIO2010]特别行动队
  • 原文地址:https://www.cnblogs.com/guangheli/p/9912549.html
Copyright © 2011-2022 走看看