Blog·Tanky WooABOUTRSS

HDOJ 2147 kiki's game

19 Aug 2010
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=2147


这题~~~规律流~~~ 分析如下: 引用了MiYu的:http://www.cnblogs.com/MiYu/archive/2010/08/18/1802685.html

P点:就是P个石子的时候,对方拿可以赢(自己输的) N点:就是N个石子的时候,自己拿可以赢 现在关于P,N的求解有三个规则 (1):最终态都是P (2):按照游戏规则,到达当前态的前态都是N的话,当前态是P (3):按照游戏规则,到达当前态的前态至少有一个P的话,当前态是N 题意: 在一个m*n的棋盘内,从(1,m)点出发,每次可以进行的移动是:左移一,下移一,左下移一。然后kiki每次先走,判断kiki时候会赢(对方无路可走的时候)。

我们可以把PN状态的点描绘出来:

HDOJ 2147

这些点的描绘有一个程序:

#include
using namespace std;
bool map[2001][2001];//1 P 0 N;
int main(){
       int i,j,k;
       map[1][1]=1;
       for(i=2;i<=2000;i++)
       {
              if(map[i-1][1])
                     map[i][1]=0;
              else map[i][1]=1;
              for(j=2;j



AC代码:

```cpp

#include 
using namespace std;
int main ()
{
    int n,m;
    while ( cin >> n >> m , n + m )
    {
          puts ( n%2 && m % 2 ? "What a pity!" : "Wonderful!"); 
    }
    return 0; 
}