博弈
文章平均质量分 54
Frozen_Guardian
已退役菜鸡Acmer
展开
-
牛客 - 焦糖布丁(线性基+博弈)
题目链接:点击查看题目大意:给出 nnn 个数字,现在要求将其构造成一棵有根树,使得博弈的后手必胜博弈规则如下:两人轮流操作,每次选择一个点,然后将当前点的部分(可以是全部)点权交付给其父节点更具体的来说,每次选择一个点 xxx,再选择一个 yyy 满足 ax>=y>0a_x>=y>0ax>=y>0,执行操作 ax−=y,afa+=ya_x-=y,a_{fa}+=yax−=y,afa+=y无法执行操作的人失败,问是否可以构造题目分析:考虑逐步分析假设根节原创 2021-06-03 09:16:25 · 199 阅读 · 1 评论 -
2020ICPC(南京) - Just Another Game of Stones(吉司机线段树+博弈)
题目链接:点击查看题目大意:给出一个长度为 nnn 的数列 aaa,现在需要执行 mmm 次操作,每次操作分为两种类型:1 l r x1 \ l \ r \ x1 l r x:对于所有 i∈[l,r]i \in [l,r]i∈[l,r] 执行 ai=max(ai,x)a_i=max(a_i,x)ai=max(ai,x)2 l r x2 \ l \ r \ x2 l r x:对于原创 2020-12-23 16:42:12 · 805 阅读 · 4 评论 -
CodeForces - 1451F Nullify The Matrix(尼姆博奕变形)
题目链接:点击查看题目大意:给出一个 n * m 的矩阵 a,两个人在矩阵上玩游戏,每轮的操作规则如下:选择任意一个点 ( x1 , y1 ) 作为起点,需要满足 maze[ x1 ][ y1 ] != 0 选择任意一个点 ( x2 , y2 ) 作为终点,需要满足 x1 <= x2 && y1 <= y2 点 ( x1 , y1 ) 减少一个任意值 x ∈ [ 1 , maze[ x1 ][ x2 ] ] 除起点外,起点到终点的任意一条路径上可以任意赋值无法操作原创 2020-11-23 17:00:06 · 311 阅读 · 4 评论 -
2020CCPC(长春) - Combination Lock(二分图博弈)
题目大意:给出一个密码锁,两个人一起玩游戏,给出初始的密码,规定:每一次都可以转动一个位置的数字一个单位 不可以转动到已经出现过的数字 不可以转动到被 ban 掉的数字无法转动的人视为失败,问谁能获胜题目分析:二分图博弈的模板题,定义参考:https://blog.csdn.net/qq_36797743/article/details/80043107对于此题而言,每次将数字的某个位置转动一个单位,其数位和的奇偶性会发生变化,从这里入手,将所有数字拆分成一张二分图建图如下:源..原创 2020-11-11 21:31:21 · 773 阅读 · 0 评论 -
HDU多校10 - 6886 Tic-Tac-Toe-Nim(尼姆博奕)
题目链接:点击查看题目大意:两个人在玩游戏,给出一个 3 * 3 的棋盘,每个格子上有数个石子,两人轮流取石子,谁先取完某一列或某一行的最后一个石子就算胜利,一般情况是,每个人可以取任意一堆中任意数量的石子(可以直接取完),但两个人第一次取的时候,必须将选择的一堆全部取完,问先手必胜的前提下,第一次有多少种不同的取石子方案题目分析:比赛时将题目想复杂了,以为是博弈树上的尼姆博奕,学了半天博弈树发现没什么用就挂机了,赛后看了一眼题解后恍然大悟,原来是题目给出的模型还没有参透因为前两次必须要取整堆,原创 2020-08-20 22:13:14 · 501 阅读 · 0 评论 -
HDU多校7 - 6850 Game(博弈+思维+贪心)
题目链接:点击查看题目大意:二维平面上有 n 个点,现在两个人博弈,每个点至多遍历一次,先手从第一个点出发,随意选择一个点作为下一个点,后手再选择一个点,从现在开始需要满足的条件是,接下来选择点的距离必须要大于前一次两点的距离,无法做出选择的人失败题目分析:挺好的一道博弈题,网上很多博客的证明和思路都是错的,只不过因为数据都是整数的原因,那样实现确实可以 AC,这里直接讲一下官方题解的思路首先求出 n * ( n - 1 ) / 2 条边作为两两点对的距离,贪心排序一下,按照距离从大到小分类讨论原创 2020-08-12 23:20:09 · 374 阅读 · 0 评论 -
牛客 - Dress as women(sg定理+位运算)
题目链接:点击查看题目大意:两个人正在玩游戏,现在给出 n 个点,两个人轮流操作,每次可以选择任意个贡献的顶点然后删除,最后无法操作的人失败题目分析:读完题后想到了之前做过的一道题目:点击查看因为 n 比较小,不难想到状态压缩,所以最朴素的做法就是设 m = 2^n ,直接 m * m 枚举状态然后写 dfs 转移状态就好了,在此之前需要记得预处理一下共线的限制,共线限制也可以利用状态压缩来保存,只需要判断每个二进制状态中所有为 1 的位置是否共线即可,在处理共线限制时,因为时间复杂度计算的比较原创 2020-06-17 01:54:56 · 287 阅读 · 0 评论 -
牛客 - A Simple Game(尼姆博弈变形)
题目链接:点击查看题目大意:给出 n 个 01 字符串,两个人轮流进行游戏,每次可以选择任意数量的字符串,进行下列操作之一(每个字符串进行的操作可以不同):选择一个字符串,使得其中的一个 ' 1 ' 变为 ' 0 ' , 如 10000 -> 00000 选择一个字符串,使得其中连续的,数量大于 2 的 '0 ' 变为一个 ' 1 ' ,如 10000 -> 11无法操作的一方输题目分析:需要转换题意,首先仔细观察后可以发现,操作 1 和操作 2 的共同特点是,可以改变 ‘ 1.原创 2020-06-08 14:56:42 · 308 阅读 · 0 评论 -
HDU - 1907 John(尼姆博弈变形)
题目链接:点击查看题目大意:给出 n 堆石子,两个人轮流取,至少取一个,取到最后一个的人输题目分析:尼姆博弈是取到最后一个的人获胜,这个题正好反着一个很显然的奇异局势就是,每一堆的石子的个数都为 1 且有偶数堆石子,此时对应着异或和为 0然后分两种情况讨论:只有一堆石子的个数大于 1 :此时先手总是可以通过操作使得石子堆数为奇数且每堆只有一个石子 有超过一堆石子数大于 1 时:可以先手将异或和变为 0代码:#include<iostream>#include<原创 2020-05-14 00:04:38 · 341 阅读 · 0 评论 -
POJ - 3922 A simple stone game(K倍博弈-斐波那契博弈进阶)
题目链接:点击查看题目大意:给出 n 个石子,两人轮流取石子,取到最后一个石子的人获胜,规定:第一次取石子不能全部取完 后续取石子的数量必须不超过前一次的K倍题目分析:大佬博客:https://blog.csdn.net/ta201314/article/details/44892055上面的博客已经分析+证明的很清楚了,其他网上绝大部分的博客都是复制粘贴的,证明也是草草两句,让人...原创 2020-03-09 13:24:41 · 268 阅读 · 0 评论 -
CodeForces - 456D A Lot of Games(字典树+博弈)
题目链接:点击查看题目大意:给出n个字符串,现在有两个人玩一个游戏,游戏规则是两人轮流构造同一个字符串,每次可以向末尾添加一个字母,必须保证添加字母后的字符串是n个字符串其中之一的前缀,不能操作者算输,两个人需要进行k次游戏,第一次游戏由先手开始,之后输掉本局游戏的人为下一局游戏的先手,现在问谁能赢得最后一局的游戏题目分析:考虑到需要对数量较大的前缀进行操作,我们可以使用字典树来维护,这样...原创 2020-01-22 00:08:02 · 254 阅读 · 0 评论 -
CodeForces - 197A Plate Game(博弈+思维)
题目链接:点击查看题目大意:给出一个指定大小的矩形桌子,再给出指定大小的盘子,要求两个人轮流往桌子上放盘子,必须满足:盘子不能重叠摆放,但是可以相互接触 每个盘子必须完整的摆在桌子上,即不能腾空放置不能摆放的人即为失败,问先手必胜还是先手必败题目分析:这个题目,训练的时候还是稍微多想了一会,一开始是以为会和矩形的长度和宽度有关系,想列公式算算一张桌子最多能放多少个盘子,然后用盘子数...原创 2019-10-28 16:37:46 · 639 阅读 · 0 评论 -
CodeForces - 1110G Tree-Tac-Toe(博弈+构造)
题目链接:点击查看题目大意:给出一棵树状棋盘,棋盘上初始时可能为空也可能为白色,小黑和小白轮流操作,每次操作小黑可以选择一个空位置染成黑色,小白可以选择一个空位置染成白色,胜利规则和五子棋类似,有三个自己的颜色连成一条线即可胜利,问小白先手,两人依次选择最优方法下棋,最后是白色胜利,黑色胜利,还是平局题目分析:首先我们必须知道,因为初始时的局面,加上小白先手,所以小黑必不可能胜利,假设有一...原创 2019-10-28 16:25:10 · 277 阅读 · 0 评论 -
CodeForces - 850C Arpa and a game with Mojtaba(博弈+sg函数)
题目链接:点击查看题目大意:给出n个数,两个人轮流按照规则操作,不能操作的人即为失败,规则很简单,每次找一个质数p的k次幂,记做x=,将数组中所有包含x倍数的数都除以x,必须保证至少有一个数可以除以x,如此往复题目分析:因为涉及到了质数,第一反应是唯一分解定理,这个题难就难在该如何转换模型,其实熟悉尼姆博弈的大佬们一眼就能将这个题目转换为多个子游戏之和,回到这个题目,我们可以将这个题目转换...原创 2019-10-28 13:01:51 · 462 阅读 · 0 评论 -
CodeForces - 603C Lieges of Legendre(博弈+找规律)
题目链接:点击查看题目大意:首先给出n堆石子和一个k值,两人轮流按照规则操作,不能操作的一方即为失败,每一次都有两种操作:从任意一堆石子中取走一个石子 任选一堆偶数个的石子,将其转换成k堆x/2的石子两人都会按照最优解操作,问谁能赢得游戏题目分析:我们可以将n堆石子都看成一个独立的游戏,那么这个题目就转换成了求每一堆石子的sg函数然后异或判断结果,但这里遇到了两个问题,首先这个题目...原创 2019-10-28 10:07:31 · 406 阅读 · 0 评论 -
CodeForces - 859C Pie Rules(dp+博弈)
题目链接:点击查看题目大意:给出n个馅饼,现在给出一个令牌,规定持有令牌的人可以选择当前的馅饼给谁,然后下一轮令牌给没有拿到馅饼的人,如此往复,一开始鲍勃拿着令牌,问最后两人能吃到多少馅饼,两人肯定都会采取最优策略玩游戏题目分析:说是博弈,其实就是一个dp。。我的dp还是菜啊,训练完之后zx学长给我讲了一下就豁然开朗的,先别说我能不能推出来转移方程了,我一开始都压根没想到这是一个动态规划的...原创 2019-10-25 23:33:51 · 381 阅读 · 0 评论 -
CodeForces - 346A Alice and Bob(数论+博弈)
题目链接:点击查看题目大意:初始时给出n个数组成的集合,现在要求爱丽丝和鲍勃两人轮流按照规则操作,无法操作的一方即为输,本游戏的规则就是,在集合中任意选择两个数x和y,计算(x-y)的绝对值,若该绝对值在原集合中不存在,则将其加入到集合中,如此往复题目分析:一开始自己在纸上划拉出了点道道,就是首先每一次新加入的值一定小于初始时集合中的最大值,并且当游戏进行到最后时,最后的集合一定是从1-m...原创 2019-10-25 22:59:18 · 522 阅读 · 0 评论 -
HDU - 2176 取(m堆)石子游戏(尼姆博奕)
题目链接:点击查看题目大意:给出m堆石子,规则是尼姆博弈的规则,问先手必胜还是必败,若能必胜则第一次有多少种方式取石子题目分析:这个题目是因为一开始知道尼姆博弈的结论,需要异或所有石子来判断的,然后关于最后第一次该怎么取石子,还是在训练的时候自己乱推出来的。。至于是为什么当时还是不知道的,现在来稍微分析一下我们已经知道了尼姆博弈的结论,即设ans为所有石子的异或值了:a1^a2^....原创 2019-10-22 23:44:00 · 323 阅读 · 0 评论 -
UVA - 1378 A Funny Stone Game(博弈+sg函数)
题目链接:点击查看题目大意:给出n堆石子,两人轮流按照规则操作,不能操作的一方即为输规则:每次将第i堆减少一个石子,将第j堆和第k堆增加一个石子,i,j,k满足(i<j<=k)若先手能必胜,输出先手所选择的i,j和k,若先手必败,输出-1,-1,-1题目分析:这个题目从网上看到好像是一个叫take&break的模型:给定 n 堆石子, 每次要求取出不为零的一...原创 2019-10-21 14:57:35 · 440 阅读 · 0 评论 -
HDU - 4388 Stone Game II(博弈+思维)
题目链接:点击查看题目大意:最初有n堆石子,每堆石子的数目已知,现在有两个人轮流按照下列规则操作,不能操作的一方即为失败首先选择一堆石子,设该堆石子目前有x个,从中拿走a个石子,剩下了k个石子,a和k必须满足 0<a<x 0<k<x k^x<x 然后加入一堆新的石子,数目为k^x,每个人每一局可以使用一次技能,让新增加的石子为(2*k)^x题...原创 2019-10-21 12:00:45 · 284 阅读 · 0 评论 -
CodeForces - 594A Warrior and Archer(思维+博弈)
题目链接:点击查看题目大意:给出n个坐标轴上的点,两个人轮流操作,每次取走其中的一个点,直到最后剩余两个点为止,Vova先手,Vova希望两个点的距离尽可能小,Lesha希望两个点的距离尽可能大,问最后剩余两个点的距离是多少题目分析:这个题在读题的时候就被样例的解释卡住了,不太明白为什么两个人要那样选择,所以一下子陷入了思维定式,所以说有时候提示也可能是误导人的。。吃了大亏了首先这是一...原创 2019-10-21 10:32:10 · 226 阅读 · 0 评论 -
HDU - 1847 Good Luck in CET-4 Everybody!(sg函数,水题)
题目链接:点击查看题目大意:给出n张牌,两个人轮流摸牌,每次只能摸2的幂次,问先手必胜还是必败题目分析:简单sg打表题,先预处理出sg表,然后O(1)查询即可#include<iostream>#include<cstdlib>#include<string>#include<cstring>#include<cstdio...原创 2019-10-20 11:49:58 · 263 阅读 · 1 评论 -
HDU - 1536 S-Nim(sg函数)
题目链接:点击查看题目大意:根据尼姆博弈的规则,现在更改为每次只能从任意一堆中取走规定集合中的数目,问每次游戏先手必胜还是必败题目分析:sg打表模板题,这里挂一个大牛的博客,讲得是尼姆博弈和sg函数的意义,我感觉讲得很好:https://www.cnblogs.com/graytido/p/10771907.html剩下的就不多啰嗦了,模板题一个,直接挂代码:#include...原创 2019-10-20 11:27:06 · 237 阅读 · 0 评论 -
(转)三大博弈定义+结论
(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。若给出的n是(m+1)的倍数,则先手必败,否则先手必胜(二)威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。判断两堆物品(min,max)是否满足条件...转载 2019-10-16 15:56:42 · 794 阅读 · 0 评论 -
HDU - 1079 Calendar Game(博弈打表sg函数)
题目链接:点击查看题目大意:给出一个日期,两个人轮流按照规则操作,具体规则如下:每次可以增加一天 每次可以增加一个月到下一个月的当天首先到达2001年11月4日的人获胜,问谁能获胜题目分析:因为是从1900年1月1日开始的,最多只跨越了100年,也就是100*365天,大概也就1e5的分支,我们可以直接用dfs进行sg打表,每一次至多有两个分支,可以用两个if套上好多个if els...原创 2019-10-16 15:35:37 · 270 阅读 · 0 评论 -
POJ - 2348 Euclid's Game(博弈)
题目链接:点击查看题目大意:给出初始的两个数字,每一次操作都要在规则下进行:令较大的数减去任意倍较小的数,必须保证不能出现负数,先减到零者获胜,问谁能获胜题目分析:这个题目说是博弈我感觉更像是找规律,我们来分析一下这个题目首先我们设(a,b)中b永远比a大,那么分为两种情况:当a<b&&2*a>b时,只能进行一种操作,即b-=a,模拟即可 当a<...原创 2019-10-16 11:33:38 · 227 阅读 · 0 评论 -
HDU - 1527 取石子游戏(威佐夫博弈)
题目链接:点击查看题目大意:有两堆石子,两个人轮流取,每次可以取一堆中任意多的石子,或者取两堆中数量相同的石子,先将石子取完者获胜,若先手获胜输出1,后手获胜输出0题目分析:这个题目涉及到了威佐夫博弈威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。这种博弈有两种局势,一种是奇异...原创 2019-10-15 21:31:24 · 368 阅读 · 0 评论 -
HDU - 5978 To begin or not to begin(简单博弈)
题目链接:点击查看题目大意:给出k个黑球以及一个红球,两个人轮流摸球,摸到红球算赢,问先手有优势还是后手有优势还是都一样,若先手优势输出1,若后手优势输出2,若都一样输出0题目分析:简单博弈,我们只要将前几种情况讨论一下答案就出来了:当k=1时:很显然赢和输的概率都为1/2,所以输出0 当k=2时:先手摸到黑球的概率为2/3,也就是说此时后手的局势变为了k=1的情况,后手胜利的概率为...原创 2019-10-01 23:50:28 · 354 阅读 · 0 评论 -
CodeForces - 451A - Game With Sticks(博弈论)
题目链接:点击查看题目大意:给出n根竖着的棍子,m根横着的棍子,每个人轮流选择交点,被选中的交点需要删除组成该交点的两个棍子,选最后一个交点的人获胜,问谁能获胜题目分析:简单博弈,我们只要选择n和m中较小的那个数,判断奇偶即可,原理很容易想,就不过多解释了。代码:#include<iostream>#include<string>#include<...原创 2019-09-10 22:41:38 · 291 阅读 · 0 评论