首页 > 其他 > 详细

poj 2311 Cutting Game (SG)

时间:2014-10-03 16:56:55      阅读:232      评论:0      收藏:0      [点我收藏+]

题意:

有一张W*H的纸片。

每人每次可以横着撕或者竖着撕,先撕出1*1那一方胜。

 

数据范围:

W and H (2 <= W, H <= 200)

 

思路:

很好抽象出游戏图的模型,用SG解决。直接看代码。

 

代码:

int dp[maxn][maxn];

int sg(int w,int h){
    if(dp[w][h]!=-1)
        return dp[w][h];
    bool g[maxn];  mem(g,false);
    for(int i=2;i<=w/2;++i)
        g[sg(i,h)^sg(w-i,h)] = true;
    for(int i=2;i<=h/2;++i)
        g[sg(w,i)^sg(w,h-i)] = true;
    for(int i=0;;++i){
        if(!g[i]) return dp[w][h]=i;
    }
}
int main(){
    mem(dp,-1);
    int w,h;
    while(scanf("%d%d",&w,&h)!=EOF){
        if(sg(w,h))
            puts("WIN");
        else
            puts("LOSE");
    }
}

 

poj 2311 Cutting Game (SG)

原文:http://www.cnblogs.com/fish7/p/4005035.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!