博弈论
_beginend
这个作者很懒,什么都没留下…
展开
-
【2019 CCPC 哈尔滨站 G. Game Store】【Nim-K+线性基+bitset优化三进制加法】
题意题目链接有一个商店,商店里每天会增加一个石子集合,集合里有两堆石子数相同的石子,且每个集合有一个价格。Alice每天会在商店里选价格和尽量大的一些集合,满足把这些集合里的石子堆放在一起,然后Bob任意拿掉一些石子堆,无论Bob怎么拿,玩Nim-K游戏先手总有必胜策略。n≤500000,ai≤1018n\le500000,a_i\le 10^{18}n≤500000,ai≤1018,强制...原创 2019-11-12 16:05:44 · 592 阅读 · 0 评论 -
bzoj 3722: PA2014 Final Budowa 博弈论
题意Fancy爷宣布XJOI群将要选举下一任群主。候选人有两名,分别是XYW和吉丽。 共有n个人(从1~n编号)参加这次投票。他们之间形成了一个树结构,根结点(1号结点)为Fancy。树上的结点有两种身份:专家(叶子结点)或领导(非叶子结点)。每位专家都有自己的选择——支持XYW和吉丽之中的一个;每位领导都有若干个下属(儿子结点),领导的选择决定于下属中人数较多的那一方,下属的数目保证为奇数,从而原创 2017-12-17 08:40:01 · 422 阅读 · 0 评论 -
bzoj 2437: [Noi2011]兔兔与蛋蛋 博弈论+二分图匹配
题意 n,m分析如果相邻格子之间有边,那么这就是一个二分图。不妨把起点也看成黑色,那么显然每个点每条边只能被走一次,这就变成了一个二分图博弈问题。 当起点必然是最大匹配中的边则先手必胜。因为先手可以一直沿着匹配边走,如果后手走到了某个不匹配点,则与起点必然是匹配点不符,故先手必胜。 若起点可能不是最大匹配中的边,则后手必胜。因为无论先手怎么走都会走到一个匹配点,后手可以沿着匹原创 2018-01-10 20:10:08 · 357 阅读 · 0 评论 -
AtCoder Grand Contest 014 D - Black and White Tree 博弈论
题意给你一棵树,先手后手轮流操作,每次先手可以把某个未染色节点染白,后手可以把某个未染色节点染黑。等没有未染色节点时,所有与黑点相邻的白色点都会变黑,若仍存在白点,则先手胜,反之则后手胜。 n分析结论:若存在完美匹配的后手必胜,否则先手必胜。 证明:若存在完美匹配,无论先手染哪一个点,后手必然可以染该点的匹配点,从而后手必胜。 若不存在完美匹配,则必然有至少一个叶节点存在于最原创 2018-01-29 17:50:17 · 372 阅读 · 0 评论 -
AtCoder Grand Contest 010 D - Decrementing 博弈论
题意有一个序列A,满足gcd(A[1],...,A[n])=1" role="presentation" style="position: relative;">gcd(A[1],...,A[n])=1gcd(A[1],...,A[n])=1gcd(A[1],...,A[n])=1。 现在两个玩家轮流进行以下操作: 选择一个大于1的位置,将该位置减一。然后将每一个位置都除以整个序列的gcd原创 2018-02-05 22:17:03 · 254 阅读 · 0 评论 -
AtCoder Grand Contest 002 E - Candy Piles 博弈论
题意有n堆糖果,两个人可以轮流选择两种操作中的其中一种: 把数量最大的那堆糖果吃掉 把每堆没吃完的糖果各吃掉一颗 吃掉最后一颗糖果的人输,问先手必胜还是后手必胜。 n<=100000,ai<=10^9分析一开始看错题了,把第二个操作看成是把其中一堆糖果吃掉一堆,发现不会做。看对题之后,发现还是不会做。。。 我们可以把糖果按照数量从大到小排成一排,把一堆糖果看成是数...原创 2018-02-11 13:17:18 · 411 阅读 · 0 评论 -
AtCoder Grand Contest 005 E - Sugigma: The Showdown 博弈论+贪心
题意给出一个无向图,边分为红边和蓝边,其中红边和蓝边分别构成一棵树。现在两个人各在树上一个点。每人轮流操作,每次可以不走或走到一个与当前点有边相连的点。其中先手只能走红边,后手只能走蓝边。若某刻两个人位于同一个点,游戏结束。先手要最大化操作次数,后手要最小化操作次数。问最终的操作次数是多少。 n<=200000分析首先要知道怎么判-1。 先把蓝边树建出来,对于某条红边(x...原创 2018-02-14 09:52:14 · 371 阅读 · 0 评论 -
bzoj 5248: [2018多省省队联测]一双木棋 博弈论+状压dp
题意菲菲和牛牛在一块n行m列的棋盘上下棋,菲菲执黑棋先手,牛牛执白棋后手。棋局开始时,棋盘上没有任何棋子,两人轮流在格子上落子,直到填满棋盘时结束。落子的规则是:一个格子可以落子当且仅当这个格子内没有棋子且这个格子的左侧及上方的所有格子内都有棋子。棋盘的每个格子上,都写有两个非负整数,从上到下第i行中从左到右第j列的格子上的两个整数记作Aij、Bij。在游戏结束后,菲菲和牛牛会分别计算自己的得...原创 2018-04-07 21:42:58 · 383 阅读 · 0 评论 -
bzoj 3164: [Heoi2013]Eden的博弈问题 博弈论+树形dp
题意对于有两个玩家的,状态透明且状态转移确定的博弈游戏,博弈树是常用的分析工具。博弈树是一棵有根树,其中的节点为游戏的状态。若节点B的父亲是A,则说明状态A能通过一次决策转移到状态B。每个状态都有一个唯一的决策方,即这个状态下应该由哪一方做出决策。我们规定双方在任何时候都是轮流做出决策的,即树上相邻节点的决策方总是不相同的。在这个问题中,我们只关心两个玩家的胜负情况,且规定游戏不会出现平局。 ...原创 2018-03-27 20:35:16 · 572 阅读 · 0 评论 -
Codeforces1161C Thanos Nim 博弈论
题意有nnn堆石子,其中nnn为偶数。两个人轮流操作,每次可以选择n2\frac{n}{2}2n堆石子,并在每堆石子中取走数量不为000的石子(可以不相同),不能操作者输。问先手必胜还是后手必胜。n≤50,每堆石子数≤50n\le50,每堆石子数\le 50n≤50,每堆石子数≤50分析这题不难但是挺有意思。设nnn堆石子中数量最少的石子数为mnmnmn若石子数恰为mnmnmn的石子...原创 2019-07-11 17:58:28 · 178 阅读 · 0 评论 -
Codeforces 1161F Zigzag Game 稳定婚姻匹配算法
题意有一个完全二分图,每边有n个点,边有边权。先手先选择III或DDD中的一个,后手则为另一个。先手选择一个开始位置,然后后手选择另一边的任意一个点走过去。之后两人轮流操作,每次可以选择当前点的一条出边走过去。若轮到选择III的人操作,则当前走的边的边权必须大于上一次走的边的边权,选DDD的人反之。现在可以任意扮演先手或后手,要求与交互库进行上述游戏并取得胜利。n≤50n\le 50n≤50...原创 2019-07-12 10:21:55 · 222 阅读 · 0 评论 -
【hdu 2516 取石子游戏】【斐波那契博弈】
题意111堆石子有nnn个,两人轮流取,先取者第111次可以取任意多个,但不能全部取完。以后每次取的石子数不能超过上次取子数的222倍。取完者胜。问先手是否必胜。n<231n<2^{31}n<231分析结论:先手必败当且仅当nnn是斐波那契数。证明:当n=2n=2n=2时显然成立。若对于[1,n−1][1,n-1][1,n−1]上述结论均成立当n&...原创 2019-09-07 21:02:50 · 273 阅读 · 1 评论 -
AtCoder Grand Contest 010 F - Tree Game 博弈论
题意这里有一个N 个点的树, 节点从1 到N 编号, 第i 条边连接了ai 和bi. 一开始第i 个点上有Ai 个石头. Takahashi 和Aoki 会玩一个游戏. 首先, Takahashi 会选择一个出发点; 然后, 从Takahashi 开始, 他们会轮流进行如下操作: • 首先, 从当前的点上拿走一个石头. • 然后, 走到一个相邻的点上. 当一个玩家无法执行操作时, 他就输了原创 2017-11-03 14:45:06 · 351 阅读 · 0 评论 -
bzoj 2927: [Poi1999]多边形之战 博弈论
题意多边形之战是一个双人游戏。游戏在一个有n个顶点的凸多边形上进行,这个凸多边形的n-3条对角线将多边形分成n-2个三角形,这n-3条对角线在多边形的顶点相交。三角形中的一个被染成黑色,其余是白色。双方轮流进行游戏,当轮到一方时,他必须沿着画好的对角线,从多边形上切下一个三角形。切下黑色三角形的一方获胜。 注:如果连接一个多边形中任意两点的线段都完全包含于这个多边形,则称这个多边形为凸多边形。原创 2017-09-27 16:56:06 · 435 阅读 · 0 评论 -
bzoj 3298: [USACO 2011Open]cow checkers 威佐夫博弈
题意给出一个起点(x,y),每次可以向下走任意步或向左走任意步或向下走k步的同时向左走k步,终点为(0,0)。不能动的人算输。问先手是否必胜。分析威佐夫博弈 有两堆各若干的物品,两人轮流从其中一堆取至少一件物品,至多不限,或从两堆中同时取相同件物品,规定最后取完者胜利。 直接说结论了,若两堆物品的初始值为(x,y),且x < y,则另z=y-x; 记w=(int)[((...原创 2017-08-22 16:10:13 · 306 阅读 · 0 评论 -
bzoj Triangle War 状态压缩+极大极小搜索+Alpha-Beta剪枝
题意有一个三角网格,两个人轮流操作,每次可以把一条虚线变成实线。若某个人把某条虚线变成实线后刚好围住了一个三角形,则这个人的得分加一。现在给出一开始的若干个操作,求谁会赢。分析首先压缩一波状态,然后就是裸的极大极小搜索+AB剪枝。 一开始错的是因为一开始以为连了一条线后最多围成一个三角形,其实可以围成很多个。#include<iostream>#include<cstdio>#include<原创 2016-10-26 20:28:45 · 484 阅读 · 0 评论 -
bzoj 3105: [cqoi2013]新Nim游戏 博弈论+贪心(拟阵)+线性基
题意传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同)。两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴。可以只拿一根,也可以拿走整堆火柴,但不能同时从超过一堆火柴中拿。拿走最后一根火柴的游戏者胜利。 本题的游戏稍微有些不同:在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴。可以一堆都不拿,但不可以全部拿走。第二回合也一样,第二个游戏者也有这样一次原创 2016-12-19 20:31:43 · 511 阅读 · 0 评论 -
bzoj 1443: [JSOI2009]游戏Game 二分图博弈
题意给出一个n*m的地图,有的格子不能走。先手可以选择某个格子开始,然后到后手走,再到先手走。每个格子只能走一次,不能走的那方算输。问对于哪些格子,先手有必胜策略。 n,m<=100分析首先考虑黑白染色,那么这就变成了一个二分图,然后求出这个二分图的最大匹配。 假设先手选择了一个非匹配点,那么后手就只能走匹配点,然后先手沿着匹配走。若某一次后手走到了一个非匹配点,那么就出现了一条增广路,与最大匹原创 2017-02-22 17:43:47 · 571 阅读 · 0 评论 -
bzoj 1022: [SHOI2008]小约翰的游戏John 博弈论
题意Nim游戏改编版,取到最后一个石子的人算输。分析如果全是1的话则特判。 假设其中一堆石子个数大于1,: 设sum=所有石子的异或和 若剩下两堆相同且不为1的石子,那么后手必胜。 若sum==0则必然可以转换成上述状态,则后手必胜。 我也不知道为什么。。。代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cs原创 2017-02-24 22:18:45 · 302 阅读 · 0 评论 -
bzoj 1874: [BeiJing2009 WinterCamp]取石子游戏 Nim游戏+SG函数
题意有n堆石子,第i堆石子有a[i]块石头。每次只能在一堆石子中取b[j]个{1<=j<=m} 问先取者是否有必胜策略,有则输出第一次在第几堆石子取多少个。 n,m<=10,a[i]<=1000分析第一次接触SG函数,感觉是个蛮神奇的东西。转载一点相关的文章: 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。例如mex{0原创 2016-12-22 21:12:25 · 460 阅读 · 0 评论 -
bzoj 3729: Gty的游戏 splay+dfs序+阶梯博弈
题意给定一颗树,初始n个结点,1为根节点。每个结点上有一定的石子数。 现在你需要在线兹瓷三种操作: 1、询问以x为根的子树中进行组合游戏,双方轮流操作,每次操作可以将一个结点(在子树内且不为x)的不超过p个至少1个石子移至其父亲结点。问这个游戏先手是否必胜? 2、修改一个结点的石子数。 3、新建一个结点石子数为x,其父亲设为y(保证y已经建立) n<=10^5分析首先我们要知道这个原创 2017-04-10 10:33:10 · 382 阅读 · 0 评论 -
bzoj 4347: [POI2016]Nim z utrudnieniem 博弈论+动态规划
题意A和B两个人玩游戏,一共有m颗石子,A把它们分成了n堆,每堆石子数分别为a[1],a[2],…,a[n],每轮可以选择一堆石子,取掉任意颗石子,但不能不取。谁先不能操作,谁就输了。在游戏开始前,B可以扔掉若干堆石子,但是必须保证扔掉的堆数是d的倍数,且不能扔掉所有石子。A先手,请问B有多少种扔的方式,使得B能够获胜。答案对10^9+7取模。 1<=n<=500000,1<=d<=10,1<=a原创 2017-04-22 09:08:12 · 728 阅读 · 0 评论 -
bzoj 1115: [POI2009]石子游戏Kam 阶梯博弈
题意有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数。两人轮流操作每次操作可以从一堆石子中移走任意多石子,但是要保证操作后仍然满足初始时的条件谁没有石子可移时输掉游戏。问先手是否必胜。 n<=1000,ai<=10000分析我们设b[i]=a[i]-a[i-1],表示每一堆石子当前可以取的个数。 显然若我在第i堆石子取了x个石子,那么b[i]就会加上x,b[i+1]就会减去x,然后原创 2017-05-07 20:25:28 · 235 阅读 · 0 评论 -
bzoj 1982: [Spoj 2021]Moving Pebbles 博弈论
题意任选一堆,首先拿掉至少一个石头,然后移动任意个石子到任意一些堆中. 谁不能移动了,谁就输了… n<=100000分析题解根本就不是构造性的要怎么想。。。答案就是如果把石子数相同的两堆两两配对能配成n/2对的话就是后手胜,否则就是先手胜。 证明: 首先证明这是必败局面。因为无论先手怎么做,后手总能跟先手做一样的操作,于是先手必败。 再证明其他局面下先手必胜。 若堆数为奇数,则我们把第一小原创 2017-06-01 21:41:29 · 411 阅读 · 0 评论 -
bzoj 2281: [Sdoi2011]黑白棋 博弈论+动态规划+排列组合
题意小A和小B又想到了一个新的游戏。 这个游戏是在一个1*n的棋盘上进行的,棋盘上有k个棋子,一半是黑色,一半是白色。 最左边是白色棋子,最右边是黑色棋子,相邻的棋子颜色不同。 小A可以移动白色棋子,小B可以移动黑色的棋子,他们每次操作可以移动1到d个棋子。 每当移动某一个棋子时,这个棋子不能跨越两边的棋子,当然也不可以出界。当谁不可以操作时,谁就失败了。 小A和小B轮流操作,现在小A先移原创 2017-07-14 20:22:48 · 985 阅读 · 0 评论 -
bzoj 4975: 区间翻转
题意小Q和tangjz正在一个长度为n的序列a_1,a_2,…,a_n上玩一个有趣的关于区间翻转的游戏。小Q和tangjz轮流行动,小Q先手。每次行动方玩家需要选择一个长度为4x+2或4x+3的区间l,r,其中x是该玩家自行选择的非负整数,然后将a_l,a_{l+1},…,a_{r-1},a_r翻转,例如1 3 2 5 4翻转会得到4 5 2 3 1。为了防止游戏无 限进行下去,他们规定每次操作之原创 2017-08-21 14:38:04 · 600 阅读 · 0 评论