巴什博奕 hdu oj 2147 kiki's game

来源:互联网 发布:java课程设计题目大耳 编辑:程序博客网 时间:2024/05/24 16:17

 hdu oj 2147kiki's game

kiki's game

Time Limit : 5000/1000ms (Java/Other)   Memory Limit : 40000/10000K (Java/Other)
Total Submission(s) : 8   Accepted Submission(s) : 2
Problem Description
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
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." <="" div="">
 

Output
If kiki wins the game printf "Wonderful!", else "What a pity!".
 

Sample Input
5 35 46 60 0
 

Sample Output
What a pity!Wonderful!Wonderful!
 

Author
月野兔
 

Source
HDU 2007-11 Programming Contest

题意:

  • 巴什博奕教程点此
  • 在一个m*n的棋盘内,棋子(二人共用一颗棋子)从棋盘的右上角出发,可以向左移,下移,左下移,但每次只能移动一格,先到棋盘左下角着获胜。kiki每次先走。

思路:

先做出PN图如下

hdu-2147:kikis game - 陈年往事 - 我学acm 的博客

其中P代表必胜点,N代表必败点。

那么这张图是怎么来的呢?

采用逆向思维,从左下方开始,填写该表,由题意得:

N:必胜点(如果左边,左下角,下角有一个P点,那么这个点就是N点)

P:必败点(如果左边,左下角,下角全都是N点,那么这个点就是P点)

结论:

通过PN图我们发现当m,n至少有一个是偶数,则kiki必胜。

c语言代码:

#include<stdio.h>int main(){int n,m;while(scanf("%d%d",&n,&m),n+m)    {if(n%2==0||m%2==0) printf("Wonderful!\n");    else printf("What a pity!\n");    }return 0;}

1 0
原创粉丝点击