• hdu 1524


        一道博弈sg的题,做完感觉到sg果然是博弈中的王道,感觉稀奇古怪的题往nim上靠,然后再分解,然后在异或就ok啦

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    int c[1001][1001];
    int sg[1001];
    int n_point;
    int getsg(int a)
    {
        if(sg[a]!=-1)
            return sg[a];
        int hand[100];
        memset(hand,0,sizeof(hand));
        int i;
        for(i=0;i<n_point;i++)
             if(c[a][i]==1)
                hand[getsg(i)]=1;
        for(i=0;;i++)
             if(!hand[i])
                 return sg[a]=i;
    }
    int main()
    {
        while(scanf("%d",&n_point)!=EOF)
        {
             int i,j;
             memset(c,0,sizeof(c));
             memset(sg,-1,sizeof(sg));
             for(i=0;i<n_point;i++)
             {
                 int n;
                 scanf("%d",&n);
                 if(n==0)
                     sg[i]=0;
                 for(j=0;j<n;j++)
                 {
                     int a;
                     scanf("%d",&a);
                     c[i][a]=1;
                 }
             }
             int n;
             while(scanf("%d",&n),n)
             {
                  int m;
                  int i;
                  for(i=0;i<n;i++)
                  {
                      int a;
                      scanf("%d",&a);
                      if(i==0)
                         m=getsg(a);
                      else
                         m^=getsg(a);
                  }
                  if(m==0)
                      printf("LOSE\n");
                  else
                      printf("WIN\n");
             }
        }
    }

  • 相关阅读:
    Win7怎么进入安全模式 三种轻松进入Win7安全模式方法
    Eclipse中新建applet 错误
    经典语录
    轻松一刻
    WIN XP蓝屏代码大全
    大话设计模式简单总结
    生命是闹着玩儿,事事显出如此 (转)
    Educational Codeforces Round 42 (Rated for Div. 2) A
    2018年东北农业大学春季校赛----不完整题解
    POJ
  • 原文地址:https://www.cnblogs.com/dchipnau/p/4985971.html
Copyright © 2020-2023  润新知