摘要: 题目分析 BZOJ 2940 可以转化为每次取,c, z, n个石子,并将剩下石子分成任意两堆。 这样我们可以根据上述预处理 SG 函数就行了。 code #include <cmath> #include <cstdio> #include <cstring> #include <iostream 阅读全文
posted @ 2020-09-07 22:30 Kersen 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 题意 给你 n 堆石子,每次取可以从任意一堆中取任意多个,或者将一堆分为非零的两堆。 这是一个典型的 Multi-SG 问题 可以使用 SG 函数来解决。举个栗子,比如一堆 3 个石子,你可以一次取 0, 1, 2, 3 个或者将它分成 \((1, 2)\) 两堆, 因此 $SG(3) = mex 阅读全文
posted @ 2020-09-07 21:11 Kersen 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 传送门 BZOJ传送门 题目分析 可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不取,我们规定取到最后一粒石子的人算输。 根据题目中给出的上述信息,我们可以知道这是一个 Anti-SG 游戏 那么我们就通过SJ定理来解决。 SJ 定理:对于一个 Anti−SG 游戏,如果我们规 阅读全文
posted @ 2020-09-07 17:08 Kersen 阅读(188) 评论(0) 推荐(0) 编辑
摘要: yyb 强强 阅读全文
posted @ 2020-09-07 15:37 Kersen 阅读(311) 评论(2) 推荐(1) 编辑
摘要: 题目分析 传送门 我们设石子数为 n。 当 n=0 时,显然先手必败。 当 n=1,2,3 时, 直接拿走, 先手必胜。 当 n=4 时,只能拿走1、2、 3, 会剩下3、2、1,先手必败。 当 n=5,6,7 时,我们可以分别拿走1, 2, 3个, 让后手面对 n=4 的情况, 也就是说后手必败, 阅读全文
posted @ 2020-09-07 14:43 Kersen 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 云顶之弈算不算博弈 阅读全文
posted @ 2020-09-07 10:06 Kersen 阅读(840) 评论(0) 推荐(1) 编辑
摘要: 题目分析 经典的 Nim 游戏 当 n 堆石子的数量异或和等于 0 时,先手必胜,否则先手必败。 证明: $\oplus$表示异或 Nim 游戏的必败态很显然,就是当前 n 堆石子的数量都为 0 的时候。 我们们用 \(a_i\) 来表示第i堆石子的数量,那么当前的局面就是: $0 \oplus 0 阅读全文
posted @ 2020-09-07 09:46 Kersen 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 洛谷 P2252 HDU 1527 题目分析 经典的威佐夫博弈 假设两堆石子为 \((x, y) \ (x < y)\) 当且仅当 $(y - x) \times \frac{\sqrt 5 + 1} {3} = x $ 时先手必败。 code #include <cmath> #include < 阅读全文
posted @ 2020-09-07 08:43 Kersen 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 题目分析 经典的巴什博弈例题。 当 \((m+1) \mid n\) 时,先手必败,否则先手必胜。 证明: 假设$(m + 1) \mid n$,先手拿了 x 个, 后手就会拿 m+1-n 个 , 这样无论怎么拿,最后只会剩下 m+1 个,在这种情况下,无论先手拿 1~m 中的哪一个,都会剩下 m+ 阅读全文
posted @ 2020-09-07 07:47 Kersen 阅读(98) 评论(0) 推荐(1) 编辑