hdu 2147 巴什博弈+PN图

题目链接:hdu 2147

定义两个状态:

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

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LL long long
#define mod 1000000007
#define inf 0x3f3f3f3f
#define sqr(a) (a)*(a)
#define lan(a,b) memset(a,b,sizeof(a))

using namespace std;

int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        if(n==0&&m==0)
            break;
        if(n&1&&m&1)
            printf("What a pity!\n");
        else
            printf("Wonderful!\n");
    }
    return 0;
}

你可能感兴趣的:(巴什博弈)