【HDU】2147 kiki's game

时间:2024-05-09 21:35:38

http://acm.hdu.edu.cn/showproblem.php?pid=2147

题意:n×m的棋盘,每次可以向左走、向下走、向左下走,初始在(1, m),n,m<=2000,问先手是否胜利。

#include <cstdio>
using namespace std;
int main() {
int n, m;
while(scanf("%d%d", &n, &m), n|m) (n&1)&&(m&1)?puts("What a pity!"):puts("Wonderful!");
return 0;
}

  


妈呀= =让我想起了cf某题...

可是这题和那题不同= =

通过找规律....发现n和m只要有1个是偶数就是必胜的= =

证明如下:

当n为偶数时,可以向下走,转换成n和m都是奇数的必败局面

当m为偶数时,同上

当n和m都是时,向左下走也同上了。

当n和m都是奇数时,显然无论怎么走,都是走到一个n或m为偶数或者n和m都是偶数的局面,即必胜局面