[HEOI2014] 人人尽说江南好

Posted lmsh7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[HEOI2014] 人人尽说江南好相关的知识,希望对你有一定的参考价值。

[HEOI2014] 人人尽说江南好

题目大意:一个博弈游戏,地上(n)堆石子,每堆石子有(1)个,每次可以合并任意两个石子堆(a,b),要求(a + b <m),问先手赢还是后手赢

Solution

可以知道,最终的石子堆是(m,m,m,cdots,m, nmod m)这样的,共有(lceil frac{n}{m} ceil)堆,每次合并两个堆,所以总合并次数为(n-lceil frac{n}{m} ceil),若合并次数为奇数,则先手赢,若合并次数为偶数,则后手赢。

Code

// luogu-judger-enable-o2
#include <iostream>
#include <cstdio>
#define sc(x) scanf("%d", &x)

using namespace std;

int main(){
    int T, n, m;
    sc(T); 
    while(T--){
        sc(n), sc(m);
        if((n - (n - 1) / m - 1) & 1)
            puts("0");
        else 
            puts("1"); 
    }
    return 0;
} 

以上是关于[HEOI2014] 人人尽说江南好的主要内容,如果未能解决你的问题,请参考以下文章

bzoj3609 [Heoi2014]人人尽说江南好

Bzoj3609[Heoi2014]人人尽说江南好(博弈)

P4101 [HEOI2014]人人尽说江南好

BZOJ3609 [Heoi2014]人人尽说江南好 博弈

bzoj 3609: [Heoi2014]人人尽说江南好博弈论

Heoi2014系列题解