【BZOJ3576】江南乐(博弈论)】的更多相关文章

fye测试原题,高一全跪,高二学长除了CA爷似乎都A辣(逃) 3576: [Hnoi2014]江南乐 Time Limit: 30 Sec Memory Limit: 512 MB Submit: 1099 Solved: 408 [Submit][Status][Discuss] Description 小A是一个名副其实的狂热的回合制游戏玩家.在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏. 游戏的规则是这样的,首先给定一个数F,然后游戏系统会…
题目描述 两人进行 $T$ 轮游戏,给定参数 $F$ ,每轮给出 $N$ 堆石子,先手和后手轮流选择石子数大于等于 $F$ 的一堆,将其分成任意(大于1)堆,使得这些堆中石子数最多的和最少的相差不超过1(即尽量均分).求先手和后手谁必胜. 输入 输入第一行包含两个正整数T和F,分别表示游戏组数与给定的数.接下来T行,每行第一个数N表示该组游戏初始状态下有多少堆石子.之后N个正整数,表示这N堆石子分别有多少个. 输出 输出一行,包含T个用空格隔开的0或1的数,其中0代表此时小A(后手)会胜利,而1…
题面 题面 题解 首先我们知道一个关于除法的重要性质:对于一个固定的\(i\),表达式\(\frac{i}{m}\)的取值只有根号个. 因此我们考虑如何优化SG函数的求解. 观察到在取值相同的同一段中,分完之后只会有m堆取值为x 或者x + 1的石子. 因此我们不需要知道每种取值的石子具体有多少,我们只需要知道它们的堆数是奇是偶即可. 同时我们知道,在同一段中,如果m变化1,那么会产生的结果就是有x堆取值为x + 1的石堆变为取值为x,并且新增一堆取值为x的石堆. 我们稍作分析: 如果x是奇数.…
挺好的题 我们算出每个数的sg值后异或起来即可 对于$n$,我们要求$sg_n$ 朴素的想法是枚举把$n$个石子分成$m$堆,有$m-n\%m$堆大小为$\left\lfloor\frac nm\right\rfloor$的石子,有$n\%m$堆大小为$\left\lfloor\frac nm\right\rfloor+1$的石子,因为是异或所以只有奇数堆的石子对$sg_n$有贡献,直接算出来再求mex即可 考虑优化,暴力是枚举$2\leq m\leq n$,因为当$\left\lfloor\f…
[BZOJ3576]江南乐(博弈论) 题面 BZOJ 洛谷 题解 无论一堆石头怎么拆分,都并不能改变它是一个\(Multi-SG\)的事实. 既然每一组的\(F\)都是固定的,那么我们预处理所有的可能的堆,而将石子拆分成若干堆,也只需要考虑\(SG\)函数的值就好了. 但是这样子求\(SG\)值的复杂度是\(O(V^2)\)的,其中\(V\)是值域,也就是\(10^5\). 再分析一下,将\(x\)个式子拆分成的最少的石子个数是\([x/m]\),最多的情况是\([x/m+1]\), 因为\([…
3576: [Hnoi2014]江南乐 Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 1929  Solved: 686[Submit][Status][Discuss] Description 小A是一个名副其实的狂热的回合制游戏玩家.在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏. 游戏的规则是这样的,首先给定一个数F,然后游戏系统会产生T组游戏.每一组游戏包含N堆石子,小A和他的对手轮流操作.…
P3235 [HNOI2014]江南乐 Description 两人进行 T 轮游戏,给定参数 F ,每轮给出 N 堆石子,先手和后手轮流选择石子数大于等于 F 的一堆,将其分成任意(大于1)堆,使得这些堆中石子数最多的和最少的相差不超过1(即尽量均分).求先手和后手谁必胜. Input 输入第一行包含两个正整数T和F,分别表示游戏组数与给定的数. 接下来T行,每行第一个数N表示该组游戏初始状态下有多少堆石子.之后N个正整数,表示这N堆石子分别有多少个. Output 输出一行,包含T个用空格隔…
LOJ#2210. 「HNOI2014」江南乐 感觉是要推sg函数 发现\(\lfloor \frac{N}{i}\rfloor\)只有\(O(\sqrt{N})\)种取值 考虑把这些取值都拿出来,能取到这个值的\(i\)是一个区间\([l,r]\) 如果\(r - l + 1 = 1\),那么直接算这个数的答案即可(\(\lfloor \frac{N}{i}\rfloor\)的石子有奇数堆还是偶数堆,\(\lfloor \frac{N}{i}\rfloor + 1\)的石子有奇数堆还是偶数堆,…
Description 小A是一个名副其实的狂热的回合制游戏玩家.在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏. 游戏的规则是这样的,首先给定一个数F,然后游戏系统会产生T组游戏.每一组游戏包含N堆石子,小A和他的对手轮流操作.每次操作时,操作者先选定一个不小于2的正整数M (M是操作者自行选定的,而且每次操作时可不一样),然后将任意一堆数量不小于F的石子分成M堆,并且满足这M堆石子中石子数最多的一堆至多比石子数最少的一堆多1(即分的尽量平均,事…
http://www.lydsy.com/JudgeOnline/problem.php?id=3576 (题目链接) 题意 给出一个数$F$,然后$n$堆石子,每次操作可以把一堆不少于$F$的石子分成$m$堆,$m$是玩家任选的不少于$2$的正整数,这$m$堆石子中最多的一堆与最少的一堆之差不超过$1$,问是否存在先手必胜. Solution 对每一个子游戏考虑如何求解$SG$函数. 假设当前一堆中有$i$石子,我们想把它分成$j$堆,那么石子数为$k=\lfloor{i/j}\rfloor+…