![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
博弈论
HT008_123
家人们点点关注叭
展开
-
[HDU 1848] Fibonacci again and again SG定理
题目描述: 有三堆石子 分别为 N ,M,P 两个人每次可以在任意一堆石子里取 FBiFBiFB_i 个石子 FBFBFB为斐波那契数列 不能取者为败 题目分析: 变形的nim游戏. 求出每个值的SG函数,套用nim游戏的结论即可. 题目链接: HDU 1848 Ac 代码: #include <cstdio> #include <iostre...原创 2018-03-09 20:52:26 · 122 阅读 · 0 评论 -
CF 662A
题目描述: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概率是在正面,各个卡牌独立。 求把所有卡牌来玩Nim游戏,先手必胜的概率。 题目分析: 我们定义S=A[1]^A[2]^A[3]^…^A[n] C[i]=A[i]^B[i] 那么问题转化成为是否存在c的一个子集和S的异或和为0 用线性基就好啦 题目链接: CF 662A...原创 2018-04-01 08:04:20 · 1184 阅读 · 0 评论 -
[CQOI2013] 新Nim游戏
题目描述: 改变Nim游戏的规则 在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴。可以一堆都不拿,但不可以全部拿走。第二回合也一样,第二个游戏者也有这样一次机会。从第三个回合(又轮到第一个游戏者)开始,规则和Nim游戏一样。 题目分析: 问题转化为 我们最少取多少的物品,能使剩下的物品不存在异或和为0的子集 首先贪心,先向线性基里填大的数 然后判断新加入的数与线性基里的...原创 2018-03-31 08:37:20 · 163 阅读 · 0 评论 -
[SDOI 2016] 硬币游戏
题目描述: 雾. 题目分析: 首先我们可以发现,每个数的形式都是这样的:c∗2a∗3b 如果我们建立一个二维的坐标系,横坐标表示a,纵坐标表示b,可以这样表示的原因是因为这个游戏的规则。每次翻的点都是c相同的。所以就与c没什么关系了。 这样我们令sg[i][j]表示i这个点与之前所有点的状态不一样,翻这个点的sg值是多少。这个在求的时候可以暴力枚举所有的后继状态。 有一个问题就是在...原创 2018-03-06 14:25:53 · 297 阅读 · 0 评论 -
[AtCoder Regular Contest 091 F] Strange Nim
题目描述: 有 N 堆石子 每堆石子有 数量 A 和 参数 K 两位选手每次选一堆石子进行取出,可以取 1-floor(A/k)(A为当前本堆石子数量,并不是常量) 题目分析: WTF!!! 第一次做一点都不裸的Nim 博弈 首先,打表程序蛮好写的 int dfs(int x,int k) { //printf("%d %d\n",x,k); if(~SG[...原创 2018-03-12 11:23:56 · 270 阅读 · 0 评论 -
SG博弈题目总集
Matches Game 裸的Nim游戏啦! #include <cstdio> #include <iostream> int main() { int n; while((scanf("%d",&n))!=EOF) { int flag=0,x; for(int i=1;i<=n;i++) ...原创 2018-03-09 20:56:33 · 310 阅读 · 0 评论 -
[HDU 1846]Brave Game 巴什博奕
题目描述: 给出 N,M 每个人每次可以拿 (1-M) 个 物品 问先手赢还是后手赢. 题目分析: 假设 N=(M+1) 那么不论先手拿多少个 一定会剩下 1<=X<=M 个,这时,后手必胜。 因此我们发现了取胜的秘诀:如果我们把 n 表示为n = (m + 1) * r + s 。(0 ≤ s < m , r ≥ 0)。 先取者 拿走 s 个, 后取者 ...原创 2018-03-09 20:54:12 · 164 阅读 · 0 评论 -
[POJ 1067] 取石子游戏 威佐夫博弈
题目描述: 有两堆石子 个数分别为 N,M A B 两个人轮流取石子 每次每个人即可以在两堆石子里取相同数量的石子,也可以在一堆石子里取石子 每次至少取1个,上者不限. 谁先取完石子算胜利 题目分析: 分析 必败态 分别是 (0,0)、(1,2)、(3,5)、(4,7)、(6,10)、(8,13)、(9,15)、(11,18)、(12,20) 可以看出,a[0] = b[0...原创 2018-03-09 20:53:40 · 129 阅读 · 0 评论 -
SG函数&&SG定理&&组合博弈习题
Sprague-Grundy定理(SG定理): 游戏和的SG函数等于各个游戏SG函数的Nim和。这样就可以将每一个子游戏分而治之,从而简化了问题。而Bouton定理就是Sprague-Grundy定理在Nim游戏中的直接应用,因为单堆的Nim游戏 SG函数满足 SG(x) = x。 SG函数: 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属...原创 2018-03-09 20:53:03 · 426 阅读 · 0 评论 -
[SHOI2008] 小约翰的游戏
题目描述: N堆石子 两个人轮流取,取最后一个石子的人输 题目分析: 反 Nim 游戏 题解来自于 DorikoTY 巨巨 先上结论:一个状态为必胜态,当且仅当所有堆的石子个数为1,且Nim和为0 或 至少有一堆的石子个数大于1,且Nim和不为0。 证明如下:显然所有堆石子个数都为1且石子对数为偶数时先手必胜,而只有一堆石子个数不为1时,Nim和不为0,可以将该堆拿完或拿到只剩一个...原创 2018-04-11 14:13:44 · 188 阅读 · 0 评论