
博弈论
C202044zxy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[unknown OJ] 手套
一、题目 点此看题 二、解法 一开始的理解虽然无限接近正解却有失偏颇,还是用图灵蒋的方法写这篇博客吧。 首先一定要搞清楚这个问题其实是博弈,我们所做的只有确定 xxx 和 yyy,而选出什么完全是上帝决定了。秉承这个思想,由于 nnn 很小,而上帝拥有 2n2^n2n 种组合拳,也就是让你把一种手套全部选择左,一种手套全部选择右,这样的情况最坏,上帝会根据你选的 x,yx,yx,y 决定用哪种组合拳。 设每种组合拳所消耗的手套数分别是 x0x_0x0 和 y0y_0y0,那么对于我们选出的 xxx ,如原创 2020-11-25 08:39:46 · 267 阅读 · 0 评论 -
[CQOI2013] 新Nim游戏
一、题目 点此看题 二、解法 取石子sgsgsg函数的就是异或和,我们要利用任意子集xorxorxor值≠0\not=0=0,进而可以联想线性基。 先手一定会留给后手一个线性基,那么后手怎么取还是改变不了它是线性基,最后线性基就会留给先手,所以先手必赢。现在我们就要让线性基里面的权值和最大,那么取走的就最小,我们直接排序,然后贪心地插入线性基,这个贪心的由来: ...原创 2020-05-13 14:30:25 · 143 阅读 · 0 评论 -
[HAOI2015]数组游戏
一、题目 点此看题 二、解法 这类翻棋子游戏有一个套路,可以把原游戏看成翻每一个棋子的组合游戏。 想要求出每一个子游戏的sgsgsg函数值,转移时可以继续把后面的棋子拆成若干个子游戏,设sg[i]sg[i]sg[i]为第iii个位置的sgsgsg函数,转移就是sgsgsg函数前缀和。 打表可以发现ni\frac{n}{i}in取值相同时sgsgsg函数值相同,其实这也不难意会,因为ni\frac...原创 2020-03-09 09:57:35 · 345 阅读 · 0 评论 -
[COCI2017-2018 Contest4] Vode
一、题目 点此看题 二、解法 设f[i][j]f[i][j]f[i][j]为轮到第iii个人,还剩jjj颗石子的胜负态,暴力转移O(n3)O(n^3)O(n3),考虑前缀和优化。 设lll为取最多石子能到达的数量,我们可以求得[l,j−1][l,j-1][l,j−1]的胜负态之和,现在讨论先后手的队伍: 如果先后手同属一队,那么和必须包含至少一个必胜态当前状态必胜,否则必败。 如果属于不同对,那...原创 2020-02-23 09:25:58 · 283 阅读 · 0 评论 -
CF1190C Tokitsukaze and Duel
一、题目 点此看题 二、解法 首先明确一点,如果第一轮没有人赢,那么一定是平局。因为后手可以重复先手的操作,把不能赢的局面留给先手,先手只能选择求和,那么就变成了平局。 考虑先手获胜的条件,即一步之后就全部变成一样的,可以枚举这个操作,具体来说处理出l[i],r[i]l[i],r[i]l[i],r[i]数组,表示和iii相同的左边最多到哪里,右边最多到哪里。 如果先手不能赢,如果2k<n2k...原创 2020-02-22 16:12:14 · 258 阅读 · 0 评论 -
CF1221E Game With String
一、题目 点此看题 二、解法 这显然是一个不公平游戏,我们把相邻两个X之间的所有.(长度为lenlenlen)拿出来讨论。 种类111:len<blen<blen<b,这种线段没人能选,可以忽略。 种类222:b≤len<ab\leq len<ab≤len<a,这种线段只有后手能选,只要存在这种线段,那么后手必胜,因为这个东西就像一个复活甲(手动滑稽),后手到...原创 2020-02-19 20:27:27 · 331 阅读 · 0 评论 -
CF919F A Game With Numbers
一、题目 点此看题 二、解法 发现状态是和排列的顺序没有关系的,爆搜一下发现状态数只有4952495^24952 可以暴力跑 tpsort\text{tpsort}tpsort,只不过我们的方法要有一些修改,我们先考虑当前点能不能赢(有没有必败点转移过来),能赢就直接加入队列(不需要其他点来更新它了);如果度数减到000了都不能赢,那就说明只能输,加入队列;否则说明可以平,此时我们就使用无为而治的...原创 2020-02-19 12:21:08 · 178 阅读 · 0 评论 -
CF1076G Array Game
一、题目 点此看题 二、解法 首先从博弈的角度分析这道题,假设我们要算iii的胜负态,先看[i+1,i+m][i+1,i+m][i+1,i+m]中有没有必败态,如果有iii就是必胜态。否则我们只能拼当前点权的奇偶性,如果为偶就是必胜态,否则是必败态。 然后这道题要修改,又要区间查询,肯定用线段树了。但现在我们发现问题很不好做,观察数据范围m<=5,这说明后面mmm个胜负态总情况不是很多(25...原创 2020-02-19 09:45:21 · 303 阅读 · 0 评论 -
CF138D World of Darkraft
一、题目 点此看题 二、解法 看到n,m<=20就能确定这是sgsgsg函数的题了吧,只不过我们要用一些奇技淫巧。 可以把原图翻转454545度,这样右上左下就变成了横切,右下左下就变成了纵切,但这里我们不需要把新的图建出来,只需要表示出一个映射关系,具体方法为:对于点(i,j)(i,j)(i,j),翻转后的坐标为(i+j,i−j+m)(i+j,i-j+m)(i+j,i−j+m) 设sg[x...原创 2020-02-18 16:10:05 · 242 阅读 · 0 评论 -
CF455B A Lot of Games
一、题目 点此看题 二、解法 CF\text{CF}CF的博弈题都是神仙题,蒟蒻被吊打… 先建出trietrietrie树,我们考虑trietrietrie上每个节点的胜负态,由于本题的特殊性:当前局博弈的目标不一定是赢。我们设计444种状态: 必胜态,只能转移到必败态,二进制表示为101010 必败态,只能转移到必胜态,二进制表示为010101 可胜可败态,即可转移到必胜态,又可以转移到必败态...原创 2020-02-18 12:57:03 · 267 阅读 · 0 评论 -
[POJ 2315] Football Game
一、题目 点此看题 二、解法 首先考虑m=1m=1m=1的情况,每堆石子的sgsgsg函数===石子数%\%%最大取走数+1+1+1 其他情况,我们把sgsgsg函数写成二进制的形式,再对它们做m+1m+1m+1进制的不进位加法(m=1m=1m=1是就是xorxorxor),最后得到的结果就是整个游戏的sgsgsg函数,我们判断有没有位上有值即可。 至于证明,蒟蒻作者是真的不会,贴个代码吧。 #i...原创 2020-02-18 11:16:12 · 254 阅读 · 0 评论 -
A New Stone Game
一、题目 点此看题 二、解法 这种sgsgsg函数做不出来的题只能靠理论了,我们从小数据开始推。 只有一堆,先手必胜;有两堆相同的,先手必败(因为后手可以模仿先手);有三堆,先手必胜(可以一步变成两堆相同);有四堆可以划分成两部分相同的,先手必败… 我们就有一个猜想:当nnn为偶数并且石堆能划分成两部分相同的,先手必败。仔细想想还是比较好证明的,因为无论先手怎么取,后手都是可以维护石堆能划分成两部...原创 2020-02-18 08:53:22 · 187 阅读 · 0 评论 -
[POJ 2311] Cutting Game
一、题目 点此看题 二、解法 设sg[i][j]sg[i][j]sg[i][j]为矩阵i×ji\times ji×j的sgsgsg函数,然后枚举分割点就行了。 但是直接这么写你会发现wa\text{wa}wa了,因为sgsgsg函数的一个基本要求是直到不能操作才判输,但是如果先手剪出了1×11\times 11×1,后手可能是可以继续剪的,但此时我们需要停止游戏。 怎么解决上述的问题呢?我们考虑对...原创 2020-02-17 12:38:45 · 224 阅读 · 0 评论 -
[POJ 1704] Georgia and Bob(阶梯博弈)
一、题目 点此看题 二、解法 0x01 阶梯博弈 即有nnn个阶梯,每个阶梯上有若干个石子,可行的操作是将一个阶梯上的石子移任意个正整数个到下一个阶梯。当没有可行操作时(所有石子都被移动到了地面,即第0号台阶)输。 阶梯博弈的sgsgsg函数等价于奇数阶梯的nimnimnim游戏,下面给出说明: 如果对手移动了奇数阶梯的石子,我们就继续按照nimnimnim游戏的规则移动石子;如果对手移动了2n2...原创 2020-02-17 09:46:32 · 289 阅读 · 1 评论 -
[hihocoder 1173] Nim游戏
一、题目 点此看题 二、解法 我们把出现在iii位置的正面朝上记为状态iii,原串可以分解成若干个状态的集合,如样例的状态集合 S={1,2,4,7}S=\{1,2,4,7\}S={1,2,4,7} 状态iii可以直接变为状态000,或则通过翻转左边变为状态i−1i-1i−1 那么nim\text{nim}nim游戏的雏形就显现了出来。但是问题来了,如果若干次操作后出现状态iii和状态i+1i+1...原创 2020-02-16 12:53:54 · 420 阅读 · 0 评论 -
SG函数模板题总结
S-Nim HDU 1536 应该是最板的一道题了qwqqwqqwq。 把kkk堆石子的博弈分解成kkk个子问题再把它们的 SG\text{SG}SG 函数值异或起来,sg[i]sg[i]sg[i]表示iii个石子的 SG\text{SG}SG 函数值,记忆化搜索即可,注意:搜索过程中算mexmexmex时visvisvis的大小就是操作集合的大小。 #include <cstdio>...原创 2020-02-13 07:52:59 · 644 阅读 · 0 评论 -
CF850C Arpa and a game with Mojtaba
一、题目 点此看题 二、解法 考虑SG\text{SG}SG函数的解法。 由于不同质数的博弈是相互独立的,我们可以把原问题分解成对于每一个素数博弈的子问题,答案就是这些子问题的SG\text{SG}SG函数异或和。 考虑每个素数的博弈,由于原操作是批量消去素数的指数,我们只需要知道那些指数出现过,把它状压起来,当作SG\text{SG}SG函数的下标,转移就枚举消去指数的大小kkk,数组都开成ma...原创 2020-02-12 13:11:28 · 324 阅读 · 0 评论 -
CF794E Choosing Carrot
普及选手又来做省选题啦~~ 注:作者只能帮助大家理解,有些地方可能不严谨,敬请谅解。 一、题目 传送门 二、解法 我们先考虑A不多吃的情况。 如果nnn为偶数,可以发现答案一定取max(a[mid],a[mid+1])\max(a[mid],a[mid+1])max(a[mid],a[mid+1]),为什么呢?考虑还有更大的a[i]a[i]a[i]在其他地方,那么B都可以通过他的n/2−1n/2...原创 2019-09-27 23:29:03 · 332 阅读 · 0 评论 -
Life Winner Bo bo 博弈
一、题目 题意: 题目大概说给一个n*m的棋盘,棋子一开始在(1,1),两人交替移动棋子,移动的时候只能向右下方向走,走到(n,m)者赢,如果不能移动那就平局。问当棋子是king、rook、knight和queen时先手是必胜还是败,或者平局。(B,G,D) king:右下斜都能走,但只能走一格。 rook:能走右下,格子不限。 knight:只能走日字型。 queen:右下斜都能走且无限制。 数...原创 2019-08-20 08:33:27 · 271 阅读 · 0 评论