博弈
yzyyylx
这个作者很懒,什么都没留下…
展开
-
codeforces 768E. Game of Stones
题面题意在Nim取石子的游戏上作了升级,对于同一堆石子,如果曾经取了k个,则不能再取k个,不能再取的人输,取完的人赢,判断后手是否能赢.做法如果去掉限制条件,那么这只要Xor所有石子的个数即可,现在其实可以将题目转化为原来的题目,对于一堆石子可以求出它最多能被取几次,比如11个石子最多能被取4次,那么它就可以被看成4个石子,因为可以将11个变成最多还能取0,1,2,3次的石子,将转化后的石子数Xor原创 2018-04-18 20:40:06 · 306 阅读 · 0 评论 -
AtCoder1999 Candy Piles
题面 题意 有n堆糖果,每堆糖果有ai个,双方轮流吃糖果,每次可以选择将每堆糖果各吃一个或者吃光最多的那堆糖果,吃完糖的人算负,问先后手谁会赢。 做法 这题需要转化一下,可以将每堆糖果按数量降序排列,然后将第i堆糖果转化为高度为a[i]的矩形,然后从(1,1)开始走,吃光最多的一堆可以看作向右走一步,每堆各吃一个可以看作向上走一步,不能走出矩形,无路可走者算负。 对于这个问题可以...原创 2018-08-06 08:57:33 · 512 阅读 · 1 评论 -
[ZJOI2009]染色游戏
题面 题意 给出一个m*n的矩形,每个格子内有一枚硬币,正面朝上或反面朝上,每次可以选择一个连通块,要求这个连通块中的所有硬币都在某个反面朝上的左上方,并将这个连通块中的所有硬币翻面,双方轮流行动,问先手有无必胜策略。 做法 整个图的SG函数值为每个反面朝上的硬币的SG函数值(也就是只有这个硬币反面朝上的局面的SG函数值)的异或和,因此我们可以先算出每个硬币反面朝上的SG函数值,然...原创 2018-09-02 10:58:09 · 399 阅读 · 1 评论 -
POJ - 2311 Cutting Game
题面 题意 有一个矩形网格图,双方轮流对它进行裁剪,每次将它剪成两半,先剪出1*1的小格子的人算赢,问先手是否有必胜策略。 做法 可以发现如果经过裁剪之后出现了1∗i(i>1)1*i(i>1)1∗i(i>1)的矩形格子则必败,因此可以在转移时强制不能出现1∗i(i>1)1*i(i>1)1∗i(i>1)的矩形格子,然后O(n3)O(...原创 2018-11-03 21:43:58 · 224 阅读 · 0 评论 -
洛谷P2964 [USACO09NOV]硬币的游戏A Coin Game
题面 题意 有一叠硬币,每个硬币有一个币值,双方轮流操作,每个人至少取一枚硬币,最多取上一个人取的数量的两倍(第一个人最多取1枚),问先手至多能得到的硬币币值之和为多少。 做法 首先定义状态dp[i][j]dp[i][j]dp[i][j]表示还剩下iii枚硬币,上一个人取了jjj枚硬币时的最大币值和,然后发现如果暴力转移,则时间复杂度是O(n3)O(n^3)O(n3),但是我们可以发现dp[i][...原创 2018-11-04 07:58:01 · 324 阅读 · 0 评论 -
[ZJOI2009]取石子游戏
题面 题意 从左到右有几堆石子,双方轮流取石子,每次取时只能从最左边或者是最右边的堆中取任意个石子,不能操作的人算输,问先手有无必胜策略。 做法 首先定义dp状态: left[i][j]left[i][j]left[i][j]表示在第iii堆石子到第jjj堆石子左边放left[i][j]left[i][j]left[i][j]个石子后是必败态。 right[i][j]right[i][j]righ...原创 2018-11-04 15:17:00 · 1618 阅读 · 0 评论 -
2018-2019 ACM-ICPC, Asia East Continent Finals J. Philosophical … Balance
题面 题意 多组数据,每组数据给出一个长度为n的字符串S,求maxi∑j=1nlcp(i,j)∗kj\max_{i}{\sum_{j=1}^{n}lcp(i,j)*k_{j}}maxi∑j=1nlcp(i,j)∗kj的最小值 其中kik_{i}ki由你定,但是要满足∑i=1nki=1\sum_{i=1}^{n}k_{i}=1∑i=1nki=1,且0<=ki&lt...原创 2019-03-05 17:58:26 · 564 阅读 · 0 评论 -
codeforces1161F Zigzag Game
题面 题意 交互题. 给出一张二分图,左右两个点之间两两有边,每条边有一个权值且每条边的权值都不相同,Alice与Bob在上面玩游戏.每局游戏由Alice选择"增加"或"减少",Bob自动选择另外一项,然后Alice选择一个点并将棋子放在上面,Bob将它移动到一个与它相连的点,之后Alice与Bob轮流将棋子移动到一个之前没有移动到过的相邻点上.要求若Alice选的是"增加",则棋子移动所经过的边...原创 2019-05-09 19:52:46 · 323 阅读 · 0 评论 -
codeforces1149E Election Promises
题面 题意 给出一张DAG,每个点上有一个数字,双方轮流进行操作:选择一个权值不为0的点,然后减少它的权值,并任意修改这个点所有后继的权值. 做法 这道题显然是Nim博弈,但是直接计算整张图的sg函数显然不可能,所以可以考虑将点进行分组,分别进行博弈,因此分组必须满足如下要求: 1.一次操作不能同时修改一个组中中的两个数 2.对同一个组中的点操作,可以修改的点所在的组构成的集合相同. 因此可以按如...原创 2019-05-13 15:39:50 · 438 阅读 · 0 评论