• BZOJ3609 人人都说江南好


    BZOJ3609 人人都说江南好

    题目传送门

    题解

    好久没有做博弈题了,这题看了好久才想出来。首先我们通过一定的方法可以证明这个游戏最终的局面一定是这样的:({m,m,cdots,m,n\%m})(只考虑(ngeq m)的情况,因为当(n<m)的时候,和(n=m)是等价的)。知道了这个之后我们就可以发现由于初始每个堆的石子个数都是1,所以合并的次数是一定的,我们只需要算一下这个合并的次数,判一下奇偶就行了。

    code

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    bool Finish_read;
    template<class T>inline void read(T &x){Finish_read=0;x=0;int f=1;char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;if(ch==EOF)return;ch=getchar();}while(isdigit(ch))x=x*10+ch-'0',ch=getchar();x*=f;Finish_read=1;}
    template<class T>inline void print(T x){if(x/10!=0)print(x/10);putchar(x%10+'0');}
    template<class T>inline void writeln(T x){if(x<0)putchar('-');x=abs(x);print(x);putchar('
    ');}
    template<class T>inline void write(T x){if(x<0)putchar('-');x=abs(x);print(x);}
    /*================Header Template==============*/
    int T;
    int n,m;
    /*==================Define Area================*/
    int main() {
    	read(T);
    	while(T--) {
    		read(n);read(m);
    		int x;
    		if(n%m) x=n/m+1;
    		else x=n/m;
    		n-=x;
    		puts(n&1?"0":"1");  
    	}
    	return 0;
    }
    
    「我不敢下苦功琢磨自己,怕终于知道自己并非珠玉;然而心中既存着一丝希冀,便又不肯甘心与瓦砾为伍。」
  • 相关阅读:
    210
    209
    208
    207
    定时任务crontab
    Python的zip与*zip函数的应用
    Python的reduce函数与map函数
    解析:cpu与io密集在何场景适合使用多进程,多线程,协程
    Python上下文(转载)
    C10K与C10M的问题
  • 原文地址:https://www.cnblogs.com/Apocrypha/p/9455184.html
Copyright © 2020-2023  润新知