HDU 1847(博弈)

Posted dwtfukgv

tags:

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

题意:不用说了吧,都是中文的。

析:虽说这是一个博弈的题,但是也很简单的,在说这个题目前我们先说一下巴什博弈定理。

巴什博弈定理:一堆物品有n个,有两个人(两个人足够聪明)轮流取,规定每次至少取一个,最多取m个,最后取完的胜利。 如果n%(m+1) != 0, 则先取者获胜,否则后取者获胜。

为什么呢?我们来分析一下,因为两个人足够聪明,如果第一个人给第二个人每次都留m+1的倍数,那么第二人要么取一个,要么大于一个小于m个,当取一个时第一个可以取m个又够成m+1的倍数,最后肯是第一个胜,

要是取大于一个小于m个,第一个人同样可以再构成m+1的倍数,最后肯定是第一个胜。

说完巴什博弈定理,我们再看这个题是不是就觉得简单了呢?第一个去构造3的倍数,因为可以取2的幂次的倍数,只要能构造出来,肯定是第一个胜。

代码如下:

#include <iostream>
#include <cstdio>

using namespace std;

int main(){
    int n;
    while(~scanf("%d", &n)){
        if(0 == n % 3)  puts("Cici");
        else  puts("Kiki");
    }
    return 0;
}

 

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

HDU_1847_基础博弈sg函数

hdu1847 Good Luck in CET-4 Everybody!(巴什博弈)

HDU 1847 Good Luck in CET-4 Everybody!(规律,博弈)

HDU 1847 Good Luck in CET-4 Everybody! (巴什博弈)

HDU 1847 Good Luck in CET-4 Everybody!(博弈找规律)

博弈总结