有$n$堆石子,每堆石子初始有$a_i$个,且附带一个参数$k_i$。每次可以从一堆石子(假设是第$i$堆,当前剩$x_i$个石子)中取出$1\sim\lfloor\frac{x_i}{k_i}\rfloor$个石子,判断谁必胜。 ...
分类:
其他好文 时间:
2021-05-24 03:25:51
阅读次数:
0
题意 问题转化成, 有 \(N\) 堆石子, 博弈双方每次可以选择不超过 \(M\) 堆, 每堆取不超过 \(X\) 个, 总的取石子数至少为一. 问胜利方. 题解 对于单堆来说是一个巴什博弈, \(SG\) 值为石子数模 \(X+1\). 我们回忆 \(M=1\) 时的 \(Nim\) 博弈, 它 ...
分类:
其他好文 时间:
2020-10-05 21:47:14
阅读次数:
26
题目分析: 这是一个经典的Multi-SG游戏的问题。 相较于普通的Nim游戏,该游戏仅仅是多了拆成两堆这样的一个状态。即多了一个SG(x+y)的过程。 而根据SG定理,SG(x+y)这个游戏的结果可以拆成SG(x)和 SG(y)游戏的结果的xor。 因此,在我们求SG函数的过程中,我们只需要再** ...
分类:
其他好文 时间:
2020-09-17 21:17:54
阅读次数:
28
B. Sequential Nim 题意 nim博弈的简化版,要求只能从第一堆开始取。最后取得胜利 思路 从后往前推,第n堆是必胜态,第n-1堆以及以前,如果只有1个石子,状态转换,如果多于一个石子,必胜(因为可以留一个也可以一个不留)。 代码 int a[100005]; main(void) { ...
分类:
其他好文 时间:
2020-07-22 11:20:09
阅读次数:
91
裂开,周赛对博弈论一无所知。。。 /* * zoj3591 Nim * 题意: * 就是,给几个数,可以求出每堆石子数,要求有多少个连续段可以,有必胜的把握! * 如果枚举的做法,肯定会超时,做法是先求出必败的个数,再用总数相减。 * 用c[i]表示前i项的异或和,那么如果c[i]=c[j],那么i ...
分类:
其他好文 时间:
2020-05-10 13:02:57
阅读次数:
69
阶梯博弈的变形。不知道的话还是一道挺神的题。 将所有的棋子两两绑在一起,对于奇数个棋子的情况,将其与起点看作一组。于是便可以将一组棋子的中间格子数看作一推石子。对靠右棋子的操作是取石子,而对左棋子的操作并不会对游戏造成影响,考虑如果在 NIM 博弈时有增加石子的操作,那么下一步另一个人就可以去相同数 ...
分类:
其他好文 时间:
2020-01-31 12:19:01
阅读次数:
55
Nim博弈 因为移动到第0阶会消失 所以可以得到从最后一个人操作必定是把第1阶所有子全部移动到第0阶 递推可得,最后一个能把奇数阶的子移动到偶数阶上的人将会必胜 所以这个必胜条件就是奇数阶上的子全部为0 拿奇数阶进行Nim博弈即可 1 #include<stdio.h> 2 int main(){ ...
分类:
其他好文 时间:
2020-01-27 17:40:15
阅读次数:
67
【题目】题目链接 Two players take turns picking candies from n heaps,the player who picks the last one will win the game.On each turn they can pick any number ...
分类:
其他好文 时间:
2020-01-16 14:47:51
阅读次数:
57
题目限制1500 ms 128 M 题目描述在某个不知名的行星上蕴含着大量冰晶矿,Jim和他的好兄弟Swan自然不能放过这个赚钱的好机会。Jim在整个星球上开掘树型矿洞,每个矿坑之间都有矿道相连。Jim和Swan在每个矿坑开采了大量的矿石,现在他们面临一个新的问题,怎么把所有的矿石运出去。已知,矿坑 ...
分类:
其他好文 时间:
2019-11-09 16:02:37
阅读次数:
99
"题目" 题意:n堆扑克牌,每次可以取走一堆中任意张数的扑克牌,问先手胜利第一步有几种可能。 这一题如果除去后面一问就直接问先手赢还是后手赢,这就是一道简单的 $ NIM $ 博弈问题。 定理 $ \ \ \ \ \ \ \ \ \ NIM $ 博弈先手必胜,当且仅当 $ A_1 xor A_2 x ...
分类:
其他好文 时间:
2019-11-03 21:48:02
阅读次数:
68