博弈论
文章平均质量分 53
WerKeyTom_FTD
我是一只来自中山纪念中学高三的oier,请多多指教
展开
-
Game
题目描述两个人玩一个游戏。有一个1*n的棋盘,有一些格子已经染了色。两个人轮流操作,每次一个人可以选择一个没有染色的格子,把它染成白色或黑色,要求相邻的格子不能染成相同的颜色。最后不能操作的那个人为输。 给出棋盘的初始状况,并且假设两个人都采取最优策略,问谁会赢?SG分析我们设: sg[0,n]表示现在有连续n个未涂色格子,其两端的格子是不同颜色的估价函数值。 sg[1,n]表示现在有连续n个原创 2016-03-16 19:37:10 · 822 阅读 · 3 评论 -
[bzoj4035]数组游戏
题目描述有一个长度为N的数组,甲乙两人在上面进行这样一个游戏:首先,数组上有一些格子是白的,有一些是黑的。然 后两人轮流进行操作。每次操作选择一个白色的格子,假设它的下标为x。接着,选择一个大小在1~n/x之间的整数 k,然后将下标为x、2x、…、kx的格子都进行颜色翻转。不能操作的人输。现在甲(先手)有一些询问。每次他 会给你一个数组的初始状态,你要求出对于这种初始状态他是否有必胜策略。好题原创 2017-04-25 22:12:49 · 1143 阅读 · 0 评论 -
[hdu6105]Gameia
题目大意有一颗n个节点的树,每个节点初始没有颜色。A和B玩游戏,A先手。B有k次小动作,可以在游戏进行的任意时刻使用(可以在A操作前后使用,一次性可以使用多次),每次小动作他会选择切掉一条树边。 两人轮流操作,A每次将一个无色点染白,B每次将一个无色点染黑并将相连点染黑(即使已经有颜色)。当不能操作后,如果存在被染白的点,A胜,否则B胜。双方绝顶聪明,问谁胜。博弈题先给出的结论: 该树如果有完美原创 2017-08-21 15:07:32 · 1287 阅读 · 2 评论 -
[agc014d]Black and White Tree
前言看到这种题直觉是树的最大匹配,如果是比赛直接打毫无疑问。 然后证明了一下也不是很难的样子。 主要是见过类似套路吧。题意两个人轮流给树上节点染色。 先手涂白色,后手涂黑色。 如果最后树上存在一个白色点,与其相连的没有黑点,先手胜,否则后手胜。 请你判断先手必胜还是后手必胜。博弈我们先给出结论:后手要赢,这颗树要有完美匹配。 首先充分性显然,有完美匹配,先手涂什么成白色,你把匹配点涂黑,原创 2017-09-26 21:09:50 · 1093 阅读 · 3 评论 -
[agc017d]Game on Tree
前言现在看到游戏题居然已经不会sg了。题意以1为根的树,两人轮流操作,每次切掉一个子树,不能操作者输。sg函数首先容易用归纳法证明一颗树上接一个节点的sg值相当于原来+1。 然后你注意到一颗树可以拆分成若干颗儿子上接一个节点,等价于原来的游戏。 于是就是简单的组合游戏题了。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a原创 2017-10-06 10:47:59 · 983 阅读 · 0 评论 -
[agc005e]Sugigma: The Showdown
前言要知道怎么判-1,接下来就好办许多了。题目大意一个有红边和蓝边的图,只保留红边或蓝边都是一颗树。 现在A和B初始都在一个点上,轮流进行,A先操作。 A每次可以不动或沿着相邻的红边走到另一节点。 B类似,但只能走蓝边。 A和B相遇游戏结束。 A要最大化游戏时间,B要最小化游戏时间,若A永远不会被B抓到输出-1。做法当A到达一条红树上的边(x,y)的端点时(这条边满足x和y在蓝树的距离大于原创 2017-10-31 10:46:38 · 876 阅读 · 0 评论 -
[agc010d]Decrementing
前言博弈题,还挺有趣。题目大意一个正整数序列,gcd为1。 两人轮流操作,每次选择一个>1的数将其-1。 然后d是新序列的gcd,将所有数除以d。 不能操作者输。结论初始gcd为1,一定存在至少一个奇数。 如果有奇数个偶数,先手是一定必胜的。 先手先操作一个偶数变成奇数(此时场上就至少2个奇数了,然后此时有偶数个偶数),然后看后手表演: 后手将一个奇数变成偶数,先手就再把这个偶数变成奇数原创 2017-10-14 11:38:54 · 619 阅读 · 0 评论 -
[agc002e]Candy Piles
前言这次我做博弈题开始根据特殊态猜测必胜态,失败了。 这个模型转换还是有点厉害的。题目大意很多堆石子,两人游戏。 每次可以取走数量最多的那堆石子的全部石子,或取走每堆各一个石子。模型转换我们把一堆石子想象成一个石子个数*1的矩形。 把矩形从高到低排列变成一个图形。 我们每次可以删除最低下一行或最左边一列。 假设有一个点初始在(1,1),它在(x,y)表示[1,x)的列被删了,[1,y)的行原创 2017-10-26 09:42:02 · 596 阅读 · 0 评论 -
[agc010f]Tree Game
前言发现树上博弈题很多。 大概思路都是你要想到一种简单不复杂的必胜必败态判断法。 再去证明两个东西就行了。 可能不是很正向思路。题目大意一颗树,每个节点上有一些石子,初始将一个小人放在某个节点上。 两人玩游戏,每次把小人所在节点上拿走一个石子(没有石子则游戏结束,当前操作者输),并把小人移动到相邻的一个节点。 问多少放小人的初始节点能使先手必胜。判断我们定义一个子树x是必胜的,当且仅当存在原创 2017-10-17 16:09:25 · 485 阅读 · 0 评论 -
营养餐
题目大意JM 是 DY 的好朋友。为了感谢 JM 多年来对自己的关心,DY 决定请他吃一顿水果营养餐. DY 有一棵有 n 个结点的树,结点 1 为根。树上每一个结点都长着许多水果,其中,结点 i 上有 ai 个水果,每个水果重 bi . 水果虽然好吃,但是这棵树非常脆弱! 一旦某结点的子结点上的水果总重量过大,树枝就会承受不住压力而断裂! 所以,随时需要保持任意一个结点 i: ai>=∑c原创 2017-12-12 21:17:12 · 730 阅读 · 0 评论 -
箱子
题目描述小猪佩奇和其他n-1个小伙伴们正在玩一个老套的游戏。 一个房间中,有n个随机打乱过的箱子放成一排,每个箱子里有一张纸条,写着一个人的名字。每个人要按一定顺序走进房间,打开最多k个箱子,如果其中没有自己的名字游戏就失败了。每个人走出房间的时候需要关上箱子。(游戏中箱子的顺序不会再被调换)游戏前他们可以商量出一个策略,但是游戏开始之后他们不能互相交流。 小猪佩奇想知道最优策略下游戏成功...原创 2018-05-22 16:15:13 · 737 阅读 · 0 评论 -
游戏
题目描述YJC最近写了一篇关于游戏的论文。CJY看他那么喜欢游戏,决定出一道题考考他。 CJY给出了一种两个人玩的游戏。定义游戏规则如下:给一张n个点,m条边的有向无环图,每条边有颜色ci。在图上放了q颗石子,每颗石子在一个点上。每次操作时,选择一个有出边且点上有石子的点x,从点上取走一颗石子,然后选择一个颜色集合S,如果x的某条出边i的颜色 ,则在边i的终点上放上一颗石子。双方轮流操作,不能操作原创 2017-05-04 15:33:27 · 680 阅读 · 0 评论 -
[JZOJ5041]游戏
题目描述有一天小A和小B在一棵有N个节点的树上玩游戏,初始时1号节点上有一枚硬币。游戏以如下方式进行: ●每一轮,小A选取一个节点,并在该节点上画一个叉 ●紧接着,小B将硬币移动到一个相邻的、没有被画叉的节点 ●小B在硬币原来所在的节点上画一个叉 以上三步不停重复,直到小B无法再移动硬币。而在游戏过程中,小A全程被戴上眼罩,因此小A无法准确地知道每一个时刻硬币在哪一个节点上。他只知道树的形态原创 2017-04-06 09:43:41 · 514 阅读 · 0 评论 -
[bzoj3492]Binary Dodgeball
结论我把乘2^k变成除以的话和原游戏当然是等价的。 这样的话我们把每个数二进制都写出来,每次就是去掉末尾几个0。 按照除lowbit部分分组,不同组之间互相独立。 每组的游戏可以这样描述: 有一群石子堆,每次从一个石子堆拿走至少一颗石子,若存在两堆相同的石子堆,则一起移走。 没有后面那个的话很容易知道就是nim游戏。 但其实我们可以把移走的两堆绑在一起,那么一个人操作其中一堆,另一个人就原创 2017-03-16 16:50:27 · 514 阅读 · 0 评论 -
游戏
题目大意有m个格子。 初始有n个石子,每个石子放在一个格子里,不会有一个格子初始时有多于1块。 两人轮流操作:每次可以将一个石子移至其右边第一个没有石子的格子里。 当一个操作后第m个格子有石子时此人胜利。 两人都足够聪明。 问先手第一步有多少种走法使其必胜?转化首先如果初始时第m-1个格子有石子那么显然直接输出1。 我们来观察一次操作的本质:对于连续一段石子(最右端的右边格子为空)将其整原创 2016-03-16 21:23:41 · 632 阅读 · 0 评论 -
[bzoj3567]江南乐
题目描述小A是一个名副其实的狂热的回合制游戏玩家。在获得了许多回合制游戏的世界级奖项之后,小A有一天突然想起了他小时候在江南玩过的一个回合制游戏。 游戏的规则是这样的,首先给定一个数F,然后游戏系统会产生T组游戏。每一组游戏包含N堆石子,小A和他的对手轮流操作。每次操作时,操作者先选定一个不小于2的正整数M (M是操作者自行选定的,而且每次操作时可不一样),然后将任意一堆数量不小于F的石子分成原创 2016-03-17 18:54:17 · 882 阅读 · 0 评论 -
JZOJ2984游戏
题目大意现在有一个序列a。 多组询问,每次给定m颗棋子的初始位置。 两人轮流操作,每次可以将一个位置为i的棋子移到j(满足1<=j<i1<=j<i,且[j,i]中a值两两不同)。 不能操作者输,每组询问先手是否必胜。线段树显然我们需要处理一个jump[i]表示位置i的棋子最多移到位置jump[i]。 那么一定有a[jump[i]−1]=a[i]a[jump[i]-1]=a[i] 于是可以用原创 2016-03-30 20:33:17 · 470 阅读 · 0 评论 -
AB棋
题目大意一列棋盘,共N个格子。初始有一些格子有棋子。 每次可以将一个棋子往左移动一格或者把一个棋子跳过其左边一格的棋子而到达左边两格,注意这两种操作均要求跳到的位置为空。不能操作者输。问先手是否有必胜策略。相似题游戏 这和一道叫游戏的题目很相似。 那么参考那道题的思路后,变成了阶梯游戏,但和游戏不一样的是每次最多移动两个石子。 这是经典博弈问题,只需要把每个阶梯上的石子模3即可。#inclu原创 2016-03-31 13:57:33 · 535 阅读 · 0 评论 -
[GDKOI2016]染色大战
题目大意一个矩形,每个格点初始时是黑或白。 两方轮流操作,每次将一个白格点染黑,如果因为这次操作每将一个1*1正方形的四个格点都变黑可以获得该正方形的权值,一次操作使得获得权值不为0那么可以继续操作。 求两者采用最优策略下先手得到的分数与后手得到的分数的差。模拟列个状压DP然后就是模拟题意,注意使用位运算优化常数。#include<cstdio>#include<algorithm>#inc原创 2016-03-01 22:03:03 · 717 阅读 · 0 评论 -
[bzoj4134]ljw和lzr的hack比赛
题目大意每个点初始有两种颜色黑或白。 两人轮流操作,每次可以选择一个白色结点,把其到根路径上的点全部染成黑色。不能操作者输。 求先手所有可以使其必胜的第一步策略。搞一波首先把原树的所有黑点删去建一颗新树,方法为对于白色点x找到其到根路径上的最近白点然后把其当作父亲。 当然建出来的新东西其实是森林这个没有问题。 然后用sg[i]表示以i为根的子树的这个游戏的估价函数。 那么显然相当于枚举一点原创 2016-03-22 22:06:55 · 1418 阅读 · 0 评论 -
[bzoj3729]Gty的游戏
题目大意给定一颗树,初始n个结点,1为根节点。每个结点上有一定的石子数。 现在你需要在线兹瓷三种操作: 1、询问以x为根的子树中进行组合游戏,双方轮流操作,每次操作可以将一个结点(在子树内且不为x)的不超过p个至少1个石子移至其父亲结点。问这个游戏先手是否必胜? 2、修改一个结点的石子数。 3、新建一个结点石子数为x,其父亲设为y(保证y已经建立)一点姿势我们需要解决以下两个博弈论问题:原创 2016-03-16 14:37:39 · 1532 阅读 · 0 评论 -
Landlords
题目大意先手有n张牌,后手有m张牌,桌面上还有一张牌。n+m+1张牌互不相同且双方都知晓自己的牌是什么。 两人轮流操作,操作类型有二: 1、说桌面上的牌是什么,说对胜利,说错失败,执行此操作后游戏结束。 2、说一张牌,如果对方手里有则展示并弃置。 求先后手获胜概率。神奇的概率题我们来考虑一下第二个操作,我们可以选择 1、老老实实去试探对方的牌,称之为我是正昊 2、耍小聪明欺骗对方,报一张原创 2016-07-02 11:15:34 · 530 阅读 · 0 评论 -
用SJ定理解决Anti-SG游戏
Anti-SG游戏定义1、决策集合为空的操作者胜。 2、其余规则与SG游戏一致。SJ定理对于任意一个Anti-SG游戏,如果定义所有子游戏的SG值为0时游戏结束,先手必胜的条件: 1、游戏的SG值为0且所有子游戏SG值均不超过1。 2、游戏的SG值不为0且至少一个子游戏SG值超过1。证明先证明第一个条件: 所有都不超过1,那么显然如果有偶数个1则先手必胜偶数个1即游戏的SG值为0。再证明第二原创 2015-09-04 10:08:09 · 3087 阅读 · 0 评论 -
[hackerrank]Bob and Ben
题目大意一片森林。 每颗树有两个系数n和k,表示这颗树有n个节点,第i个节点父亲为第max(1,i/k)个节点。 两人进行游戏,每次可以删除一颗树(该数必须存在非叶子)或树中一个叶子,无法操作者输。 叶子的定义是度数为1的节点。 求先手是否必胜。结论考虑一颗大小为n的树,n=1sg值为1,n=2sg值为0,那么n>2呢? 有两种决策:减到n-1,或者直接变没(一定存在非叶子) sg(n)原创 2016-11-15 17:01:24 · 633 阅读 · 0 评论 -
小J真爱粉交流群
题目大意有数字的n*m网格图,DDD和YJQ在玩游戏。 DDD先把一个小人放在第一行某个格子上。获得该格子分数。 接下来每个时刻,YJQ先在任意上下相邻的格子间建墙,可以建任意个。 DDD移动小人向四相邻的位置走(如果没有墙)。并获得新格子分数(重复走重复获得)。 小人到达最后一行游戏结束,现在DDD的目标是最小化,YJQ的目标是最大化,问得分是多少。做法可以发现,DDD负...原创 2018-05-30 08:43:09 · 769 阅读 · 0 评论