zoukankan      html  css  js  c++  java
  • hdu 2999 Stone Game, Why are you always there? 博弈论

    SG函数应用!!

    代码如下:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<cmath>
     5 #include<algorithm>
     6 using namespace std;
     7 int sg[1002],a[101],n;
     8 int get_sg(int m)
     9 {
    10     if(sg[m]!=-1) return sg[m];
    11     bool vis[10000];
    12     memset(vis,0,sizeof(vis));
    13     for(int i=0;i<n&&a[i]<=m;i++)
    14         for(int j=0;j<=m-a[i]-j;j++){
    15         vis[get_sg(m-a[i]-j)^get_sg(j)]=1;
    16     }
    17     int i=0;
    18     while(vis[i]) i++;
    19     return sg[m]=i;
    20 }
    21 int main()
    22 {
    23     int i,j,m,p,k;
    24     while(scanf("%d",&n)!=EOF){
    25         for(i=0;i<n;i++) scanf("%d",&a[i]);
    26         sort(a,a+n);
    27         for(i=j=1;i<n;i++)
    28         if(a[i]!=a[j-1]){
    29             a[j++]=a[i];
    30         }
    31         n=j;
    32         scanf("%d",&m);
    33         memset(sg,-1,sizeof(sg));
    34         sg[0]=0;
    35         while(m--){
    36             scanf("%d",&k);
    37             puts(get_sg(k)?"1":"2");
    38         }
    39     }
    40     return 0;
    41 }
    View Code

  • 相关阅读:
    react 滑动删除组件
    004-Java进制转换
    003-JavaString数据类型
    002-Java数据类型
    001-Java命名规范
    【leetcode】804
    【MySQL】基本语句
    【python】
    hiveSql常见错误记录
    【数据库】-基本特性
  • 原文地址:https://www.cnblogs.com/xin-hua/p/3299898.html
Copyright © 2011-2022 走看看