题目链接hdu2147
PN图的画法
两个状态:
P:面对P时先手必输
N:面对N时先手必胜
PN点的确定规则:
如果一个点能转换到的所有点都是N,那么此点状态为P。
如果一个点能转化到一个P,就说明能使对手面临必输状态,那么此点为N
所以从终点开始,先确定横纵坐标分别为1的点的状态,在确定中间点的状态。
找到规律就能确定n,m点的状态了
5*5的PN图
P | N | P | N | P |
N | N | N | N | N |
P | N | P | N | P |
N | N | N | N | N |
P | N | P | N | P |
很容易发现
m n都是奇数的时候 是P 先手必输
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<string.h>
using namespace std;
int n,m;
int main(){
while(scanf("%d%d",&n,&m),(n||m)){
if(n%2==1&&m%2==1){
printf("What a pity!\n");
}
else {
printf("Wonderful!\n");
}
}
return 0;
}