BZOJ 3609: [Heoi2014]人人尽说江南好】的更多相关文章

3609: [Heoi2014]人人尽说江南好 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 470  Solved: 336[Submit][Status][Discuss] Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家), 最近他 想起了小时候在江南玩过的一个游戏.     在过去,人们是要边玩游戏边填词的,比如这首<菩萨蛮>就是当年韦庄在玩游戏时填 的:  …
参考:https://blog.csdn.net/Izumi_Hanako/article/details/80189596 胜负和操作次数有关,先手胜为奇,所以先手期望奇数后手期望偶数,最后一定能达到m,m,m,...n%m的操作次数最大局面 然后看达到这个状态的操作数的奇偶性即可 #include<iostream> #include<cstdio> using namespace std; int t,n,m,a,b,ans; int main() { scanf("…
BZOJ3609 Heoi2014 人人尽说江南好 Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家),最近他 想起了小时候在江南玩过的一个游戏. 在过去,人们是要边玩游戏边填词的,比如这首<菩萨蛮>就是当年韦庄在玩游戏时填 的: 人 人 尽 说 江 南 好, 游 人 只 合 江 南 老. 然而我们今天不太关心人们填的词是什么,我们只关心小 Z 那时玩过的游戏.游戏的规 则是这样的,给定 N 堆石子,每堆石子一开始只…
[Heoi2014]人人尽说江南好 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 581  Solved: 420[Submit][Status][Discuss] Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家), 最近他 想起了小时候在江南玩过的一个游戏.     在过去,人们是要边玩游戏边填词的,比如这首<菩萨蛮>就是当年韦庄在玩游戏时填 的:     人 人…
[HEOI2014] 人人尽说江南好 题目大意:一个博弈游戏,地上\(n\)堆石子,每堆石子有\(1\)个,每次可以合并任意两个石子堆\(a,b\),要求\(a + b \leq m\),问先手赢还是后手赢 Solution 可以知道,最终的石子堆是m,m,m,m, n mod m这样的,并不一定是这样,比如\(1,1,1,1,1\),可以是合并为\(3,2\)或\(4,1\),但总数都是\(\lceil \frac{n}{m}\rceil\)堆,每次合并两个堆,所以总合并次数为\(n-\lce…
Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家), 最近他 想起了小时候在江南玩过的一个游戏.     在过去,人们是要边玩游戏边填词的,比如这首<菩萨蛮>就是当年韦庄在玩游戏时填 的:     人 人 尽 说 江 南 好, 游 人 只 合 江 南 老.     然而我们今天不太关心人们填的词是什么,我们只关心小 Z 那时玩过的游戏.游戏 的规 则是这样的,给定 N 堆石子,每堆石子一开始只有 1 个.小 Z 和他…
题目描述 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家),最近他 想起了小时候在江南玩过的一个游戏. 在过去,人们是要边玩游戏边填词的,比如这首<菩萨蛮>就是当年韦庄在玩游戏时填 的: 人 人 尽 说 江 南 好, 游 人 只 合 江 南 老. 然而我们今天不太关心人们填的词是什么,我们只关心小 Z 那时玩过的游戏.游戏的规 则是这样的,给定 N 堆石子,每堆石子一开始只有 1 个.小 Z 和他的小伙伴轮流操作, 小 Z 先行操作.操作…
Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家),最近他 想起了小时候在江南玩过的一个游戏.    在过去,人们是要边玩游戏边填词的,比如这首<菩萨蛮>就是当年韦庄在玩游戏时填 的:     人 人 尽 说 江 南 好, 游 人 只 合 江 南 老.     然而我们今天不太关心人们填的词是什么,我们只关心小 Z 那时玩过的游戏.游戏的规 则是这样的,给定 N 堆石子,每堆石子一开始只有 1 个.小 Z 和他的小伙…
题目大意: 给定\(n\)堆初始大小为\(1\)的石堆 每次选择两堆石子合并,特别的,合并之后的两堆石子不能\(> m\) 询问先手必赢? 不妨设我们是先手,且最后我们必胜 我们考虑构造局面\(m, m, m, m,m, ..., n\;mod\;m\) 我们从左往右依次合并出这些\(m\)堆 如果对手帮我们在当前堆上合并\(1\),那就是自寻死路 否则,如果另外的合并出了一个大小为\(2\)的堆 如果$m - $ 当前堆的大小 \(\ge 2\),那么我们把这个对手新合并出的堆合并到自己的堆上…
题面 题面 题解 感觉这题挺神仙的,根据一些奇奇怪怪的证明可以得到: 最后的终止状态一定是\(m, m, m, m, .... n \% m\). 因此我们可以O(1)计算到终止状态所需步数,然后根据奇偶性即可判断谁胜谁负. #include<bits/stdc++.h> using namespace std; #define R register int inline int read() { int x = 0; char c = getchar(); while(c > '9'…