首页 > ACM题库 > HDU-杭电 > hdu 2147 kiki’s game-博弈论-[解题报告]C++
2013
12-29

hdu 2147 kiki’s game-博弈论-[解题报告]C++

kiki’s game

问题描述 :

Recently kiki has nothing to do. While she is bored, an idea appears in his mind, she just playes the checkerboard game.The size of the chesserboard is n*m.First of all, a coin is placed in the top right corner(1,m). Each time one people can move the coin into the left, the underneath or the left-underneath blank space.The person who can’t make a move will lose the game. kiki plays it with ZZ.The game always starts with kiki. If both play perfectly, who will win the game?

输入:

Input contains multiple test cases. Each line contains two integer n, m (0<n,m<=2000). The input is terminated when n=0 and m=0.

输出:

Input contains multiple test cases. Each line contains two integer n, m (0<n,m<=2000). The input is terminated when n=0 and m=0.

样例输入:

5 3
5 4
6 6
0 0

样例输出:

What a pity!
Wonderful!
Wonderful!

博弈,简单推一下必败点与必胜点,可以看出奇偶规律。

代码如下:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;

int main()
{
#ifdef test
    freopen("input.txt", "r", stdin);
#endif
    int n, m;
    while(scanf("%d%d", &n, &m))
    {
        if(!n && !m)
            break;
        if(!(n%2) || !(m%2))
            printf("Wonderful!\n");
        else
            printf("What a pity!\n");
    }
    return 0;
}

解题转自:http://blog.csdn.net/goomaple/article/details/8883284