HDU2147(模拟找规律)

首先模拟打表,从表(1表示必胜态,0表示必败态)中找到规律:有偶数先手一定赢,没有偶数则后手赢
打表代码

#include 
bool gird[2000+10][2000+10];//1代表必胜点 0代表必败点
int main()
{
    int i,j;
    int n,m;
    gird[2000][1]=0;
    for(i=2000;i>0;--i)
    {
        for(j=1;j<=2000;++j)
        {
            gird[i][j]=0;
            if( (gird[i+1][j]==0&&i+1<=2000) || (gird[i][j-1]==0&&j-1>=1) ||(gird[i+1][j-1]==0&&i+1<=2000&&j-1>=1) )
                gird[i][j]=1;
        }
    }
    for(i=1;i<=20;++i)
        for(j=1;j<=20;++j)
        {
            i=2000-i+1;
            printf("%d ",gird[i][j]);
            if(j==20)
                printf("\n");
        }

    return 0;
}

具体代码

#include 
int main()
{
    int a,b;
    while(scanf("%d%d",&a,&b)&&(a!=0||b!=0))
    {
        if(a%2==0||b%2==0)
            printf("Wonderful!\n");
        else 
            printf("What a pity!\n");
    }
    return 0;
}

你可能感兴趣的:(HDU)