X-man

导航

hdu 2147 kiki's game

#include<stdio.h>
#include<iostream>
using namespace std;
bool map[2001][2001];//1 P 0 N;
int main()
{
       int i,j,k;
       map[1][1]=1;
       for(i=2;i<=2000;i++)
       {
              if(map[i-1][1])
                     map[i][1]=0;
              else map[i][1]=1;
              for(j=2;j<i;j++){
                     if(!map[i][j-1]&&!map[i-1][j-1]&&!map[i-1][j])
                            map[i][j]=1;
                     else map[i][j]=0;
              }
              if(map[1][i-1])
                     map[1][i]=0;
              else map[1][i]=1;
              for(j=2;j<i;j++){
                     if(!map[j-1][i]&&!map[j-1][i-1]&&!map[j][i-1])
                            map[j][i]=1;
                     else map[j][i]=0;
              }
              if(!map[i][i-1]&&!map[i-1][i-1]&&!map[i-1][i])
                     map[i][i]=1;
              else map[i][i]=0;
       }
       int M,N;
       for(i=1;i<=10;i++){
              for(j=1;j<=10;j++)
                     printf("%c ",map[i][j]?'P':'N');
              printf("\n");
       }
       while(scanf("%d%d",&M,&N)&&M&&N){
              if(map[M][N]) printf("What a pity!\n");
              else printf("Wonderful!\n");
       }
       return 0;
}
//●  一个点是P点, 当且仅当他所有的有向邻接点是N点(N点先手胜)
//●  一个点是N点, 当且仅当有一个有向邻接点是P点(P点先手败)
View Code
#include<stdio.h>
int main()
{
    int n,m;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        if(n==0&&m==0)break;
        if(n&1 && m&1)printf("What a pity!\n");
        else printf("Wonderful!\n");
    }
    return 0;
}

 

posted on 2013-08-17 16:25  雨钝风轻  阅读(171)  评论(0编辑  收藏  举报