zoukankan      html  css  js  c++  java
  • hdu 2147 博弈

      这个题目好玩,知道推算方法了以后,刚做完之前那个题,然后我就果断打表!MLE!然后我就输出了20*20的情况找找规律吧,我发现当n,m中只要有一个为偶数的时候先手就会赢。下面附上2段代码。

    0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1    //这个是打表出来的20*20的值。n是行号,m是列号。
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
    0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
    0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
    0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
    0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
    0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
    0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
    0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
    0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
    0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 

    打表代码

     1 #include <stdio.h>
     2 bool gird[2000+10][2000+10];//1代表必胜点 0代表必败点
     3 int main()
     4 {
     5     int i,j;
     6     int n,m;
     7     gird[2000][1]=0;
     8     for(i=2000;i>0;--i)
     9     {
    10         for(j=1;j<=2000;++j)
    11         {
    12             gird[i][j]=0;
    13             if( (gird[i+1][j]==0&&i+1<=2000) || (gird[i][j-1]==0&&j-1>=1) ||(gird[i+1][j-1]==0&&i+1<=2000&&j-1>=1) )
    14                 gird[i][j]=1;
    15         }
    16     }
    17 /*    while(scanf("%d%d",&n,&m)&&(n!=0||m!=0))
    18     {
    19         n=2000-n+1;
    20         if(gird[n][m]==1)
    21             printf("Wonderful!\n");
    22         else
    23             printf("What a pity!\n");
    24 
    25     }
    26     */
    27     for(i=1;i<=20;++i)
    28         for(j=1;j<=20;++j)
    29         {
    30             i=2000-i+1;
    31             printf("%d ",gird[i][j]);
    32             if(j==20)
    33                 printf("\n");
    34         }
    35 
    36     return 0;
    37 }

    然后提交代码

     1 #include <stdio.h>
     2 int main()
     3 {
     4     int a,b;
     5     while(scanf("%d%d",&a,&b)&&(a!=0||b!=0))
     6     {
     7         if(a%2==0||b%2==0)
     8             printf("Wonderful!\n");
     9         else 
    10             printf("What a pity!\n");
    11     }
    12     return 0;
    13 }
  • 相关阅读:
    隆重推出PowerDesinger 12.1.0.1913破解补丁
    Glowcode 6.0 破解手记,.Net IL技术
    爬虫如何抓取到Asp.Net中__doPostBack获取新页面的数据
    谁是股市上的最大受益者
    带强名的.net程序反向工程后汇编中的问题总结
    让所有的实体店成为网店的体验店
    推出网站大鱼搜索
    利用搜索引擎技术抢注域名
    在程序中显示PDF文件不依赖于Arcobat Reader的PDF阅读器开发
    用开源Carrot2的后缀树算法做Web文本聚类
  • 原文地址:https://www.cnblogs.com/symons1992/p/2849599.html
Copyright © 2011-2022 走看看