题意:        棋的初始点是(1,m),即右上角。        下棋者只能往左边(left),左下面(left-underneath),下面(underneath),这三个方格下棋。 解题思路: 只要画出NP图就可以发现规律了。。。 N:必胜点(如果左边,左下角,下角有一个P点,那么这个点就是N点) P:必败点(如果左边,左下角,下角全都是N点,那么这个点就是P点) 最后棋子一定到达(n,m)这个点,所以我们从这个点开始画。 图: NNNNNNNNNNNNNNNNNN PNPNPNPNPNPNPNPNPN NNNNNNNNNNNNNNNNNN PNPNPNPNPNPNPNPNPN NNNNNNNNNNNNNNNNNN PNPNPNPNPNPNPNPNPN NNNNNNNNNNNNNNNNNN PNPNPNPNPNPNPNPNPN NNNNNNNNNNNNNNNNNN PNPNPNPNPNPNPNPNPN NNNNNNNNNNNNNNNNNN PNPNPNPNPNPNPNPNPN 发现规律了吧。 代码:
#include<iostream>  using namespace std;  int main(void)  {      int n,m;      while(scanf("%d%d",&n,&m),n||m)      {          if(!(m&1))          {              cout<<"Wonderful!"<<endl;          }          else          {              if(!(n&1))                  cout<<"Wonderful!"<<endl;              else                  cout<<"What a pity!"<<endl;          }      }      return 0;  } 
posted on 2011-08-23 17:01  cchun  阅读(257)  评论(0编辑  收藏  举报