zoukankan      html  css  js  c++  java
  • 【BZOJ】【2940】【POI2000】条纹

    博弈论

      一开始想成S-Nim了……后来发现不一样= =石子是一定得取的,但是这个铺条纹就像Crosses and Crosses一样,是可以铺到中间,左右留下空隙但是对手无处可放的……

      所以就是两道题的方法结合一下咯~

      

     1 /**************************************************************
     2     Problem: 2940
     3     User: Tunix
     4     Language: C++
     5     Result: Accepted
     6     Time:60 ms
     7     Memory:1276 kb
     8 ****************************************************************/
     9  
    10 //BZOJ 2940
    11 #include<cstdio>
    12 #include<cstring>
    13 #include<iostream>
    14 #define F(i,j,n) for(int i=j;i<=n;++i)
    15 int getint(){
    16     int v=0,sign=1; char ch=getchar();
    17     while(!isdigit(ch)) {if(ch=='-') sign=-1; ch=getchar();}
    18     while(isdigit(ch))  {v=v*10+ch-'0'; ch=getchar();}
    19     return v*sign;
    20 }
    21 const int N=1010,INF=~0u>>2;
    22  
    23 int a[4],SG[N];
    24 bool mark[N];
    25 int main(){
    26     F(i,1,3) a[i]=getint();
    27     int n=getint();
    28     F(i,1,1000){
    29         memset(mark,0,sizeof mark);
    30         F(j,1,3)
    31             for(int k=0;k<=i-a[j]-k;++k)
    32                 mark[SG[k]^SG[i-a[j]-k]]=1;
    33         F(j,0,i) if (!mark[j]) {SG[i]=j; break;}
    34     }
    35     F(i,1,n) {
    36         printf("%d",SG[getint()] ? 1 : 2);
    37         if (i!=n) printf("
    ");
    38     }
    39     return 0;
    40 }
    View Code
  • 相关阅读:
    c# 解决读取Excel混合文本类型,数据读取失败的解决方法
    c#中的常用ToString()方法总结
    vsts
    RSA加密解密
    odbc连接数据库
    SerialPort
    C# Winform下载文件并显示进度条
    c# 面试题
    SQL Server 存储过程
    mysql 事务处理
  • 原文地址:https://www.cnblogs.com/Tunix/p/4305608.html
Copyright © 2011-2022 走看看