HDU - 6266 - HDU 6266 Hakase and Nano (博弈论)

Posted somliy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU - 6266 - HDU 6266 Hakase and Nano (博弈论)相关的知识,希望对你有一定的参考价值。

题意:

有两个人从N个石子堆中拿石子,其中一个人可以拿两次,第二个人只能拿一次。最后拿完的人胜利。

思路:

类型 Hakase先 Hakase后
1 W L
1 1 W W
1 1 1 (3n) L W
1 1 1 1 (3n+1) W L
1 1 1 1 1 (3n+2) W W
类型 Hakase先 Hakase后
X 1 1 W L
X Y 1 W W
X Y Z W W
X 1 1 1 W L
X Y 1 1 W W
X Y Z 1 W W
X 1 1 1 1 W W
X Y 1 1 1 W W

1.若n = 3t,若每个石子堆都是1,A先手必输(1 1 1)。只有一个数量大于1的石子堆,则B先手A必输(X 1 1)。

2.若n = 3t+1,若只有一堆柿子大于1(X 1 1 1)。则B先手A必输。

按照结论写代码。。

代码:

#include<iostream>

using namespace std;

int main() {
    int t, n, d;
    scanf("%d", &t);
    while(t--) {
        bool flag = true;
        int cnt = 0, a;
        scanf("%d %d", &n, &d);
        for(int i = 0; i < n; i++) {
            scanf("%d", &a); 
            if(a >= 2)
                cnt++;
        }
        int x = n % 3;
        if(x == 0) {
            if(cnt==0 && d==1)
                flag = false;
            if(cnt==1 && d==2)
                flag = false;
        }else if(x == 1){
            if(cnt<=1 && d==2)
                flag = false;
        }
        if(flag) printf("Yes
");
        else printf("No
");
    }
    return 0;
}

以上是关于HDU - 6266 - HDU 6266 Hakase and Nano (博弈论)的主要内容,如果未能解决你的问题,请参考以下文章

NOI 题库 6266

[Android] 视频黑马安卓6266期等教程+源码

2017CCPC杭州-C. Hakase and Nano

docker AUFS 资料 链接

越南语入门

矩阵游戏 HYSBZ - 1059(最大流)