博弈论
pocket_legend
这个作者很懒,什么都没留下…
展开
-
[学习笔记] 博弈与组合游戏
组合游戏: 游戏有两个人参与,二者轮流做出决策。且这两个人的决策都对自己最有利。 当有一人无法做出决策时游戏结束,无法做出决策的人输。无论二者如何做出决策,游戏可以在有限步内结束。 游戏中的同一个状态不可能多次抵达。且游戏不会有平局出现。 任意一个游戏者在某一确定状态可以作出的决策集合只与当前的状态有关,而与游戏者无关。 sgsgsg函数 sg(u)=mex(sg(v),v是u的后继)...原创 2018-03-08 22:40:48 · 188 阅读 · 0 评论 -
[BeiJing2009 WinterCamp] bzoj1874 取石子游戏 [博弈论]
Description: 小H和小Z正在玩一个取石子游戏。 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子, 每次取石子的个数有限制,谁不能取石子时就会输掉游戏。 小H先进行操作,他想问你他是否有必胜策略,如果有 ,第一步如何取石子。 Solution: 暴力求出sgsgsg函数,判断每个子游戏也就是石子堆的异或和是否为000,为000则输出NONONO,否则枚举...原创 2018-03-12 11:16:15 · 531 阅读 · 0 评论 -
[Hnoi 2014] bzoj3576 江南乐 [博弈论]
Description: nnn堆石子,每次可以把一堆石子分成若干份,任意两份之间的差≤1≤1\leq 1且每堆都要>=m>=m>=m,问先后手输赢。 Solution: sgsgsg函数裸题,但是不能枚举后继,复杂度过高。发现这样分事实上只有n−−√n\sqrt{n}种数量不同的石子,并且由于xorxorxor只和奇偶性有关,那么利用分块优化枚举即可。 #includ...原创 2018-03-22 19:55:09 · 229 阅读 · 0 评论 -
[Poi 1999] bzoj2927 多边形之战 [博弈论]
Description: 三角剖分一个三角形是黑色,每次删掉一个边界三角形,问先手是否必胜。 Solution: 对偶一下,相当于每次树上删一个节点。如果黑色是叶子,那么先手赢,否则判断奇偶性即可。 #include <cstdio> using namespace std; int n, a, b, c, tot; int p[50005]; int main() { ...原创 2018-04-15 16:28:14 · 157 阅读 · 0 评论 -
AGC017D Game on Tree [博弈论]
Description: 树上删边游戏。 Solution: 具体见程序。 #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 5; int n; int sg[maxn]; vector<int> G[maxn]; void dfs(int u, int last) {...原创 2018-04-11 17:58:19 · 196 阅读 · 0 评论 -
[Cqoi 2013] bzoj3106 棋盘游戏 [博弈论]
Description: 两个人移动棋子,第一个人每次可以走一格,第二个人每次可以走一格或两格。希望最大化吃掉对方的时间。 Solution: 对抗搜索。 设dp[o][s][a][b][c][d]dp[o][s][a][b][c][d]dp[o][s][a][b][c][d]表示当前是ooo走,走了sss步,分别的坐标。 然后先手肯定会被后手吃掉,那么先手尽量希望拖延时间,对答案取...原创 2018-04-17 19:43:10 · 269 阅读 · 0 评论