zoukankan      html  css  js  c++  java
  • POJ 2960 S-Nim<博弈>

    链接:http://poj.org/problem?id=2960

     1 #include<stdio.h>
     2 #include<string.h>
     3 const int N = 10001;
     4 const int M= 101;
     5 int SG[N];//SG[i]记录一堆i颗石子的SG状态
     6 int s[M];//存储可选取的石子数目集合
     7 int k;//s[]集合中的元素个数
     8 int mex(int x)
     9 {
    10     if( SG[x]!=-1 )return SG[x];
    11     bool vi[N]={0};
    12     for( int i=0; i<k; ++ i ){
    13         if( s[i] <= x ){
    14             vi[mex(x-s[i])]=1;
    15         }
    16     }
    17     int i=0;
    18     while(vi[i])++i;
    19     return SG[x]=i;
    20 }
    21 int main()
    22 {
    23     while(scanf("%d",&k)!=EOF)//可选集合中的元素个数
    24     {
    25         if(k==0)break;
    26         int i,ans;
    27         for(i=0; i<k; i++)
    28             scanf("%d",&s[i]);
    29         memset(SG,-1,sizeof(SG));
    30         SG[0]=0;
    31         int m;
    32         scanf("%d",&m);//测试组数
    33         while(m--)
    34         {
    35             ans=0;
    36             int l;
    37             scanf("%d",&l);//石子堆数
    38             while(l--)
    39             {
    40                 int x;
    41                 scanf("%d",&x);//当前堆石子数目
    42                 if(SG[x]==-1)
    43                     SG[x]=mex(x);
    44                 ans=ans^SG[x];
    45             }
    46 
    47             if(ans==0)printf("L");
    48             else
    49                 printf("W");
    50         }
    51 
    52         printf("
    ");
    53     }
    54 
    55     return 0;
    56 }
    View Code
  • 相关阅读:
    404、500、502等HTTP状态码介绍
    Linux系统信息查看命令
    SVN clean up 无法继续
    gitlab使用
    Git SSH Key 生成步骤
    gitlab 杂记
    JS函数
    MySQL基础
    WEB测试方法
    操作系统的发展史
  • 原文地址:https://www.cnblogs.com/jian1573/p/3220003.html
Copyright © 2011-2022 走看看