![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM_Game_Theory
文章平均质量分 73
Gatevin
这个作者很懒,什么都没留下…
展开
-
HDU 2147 kiki's game 简单博弈
题目大意:现在kiki和ZZ两个人玩一个游戏:在一个n*m的棋盘上,右上角起始有一个棋子原创 2014-08-25 23:15:59 · 691 阅读 · 0 评论 -
HDU 1564 Play a game 简单博弈
题目大意:就是现在有一个n*n的棋盘, 现在在一个角落有一个棋子, 两人轮流进行操作, 每次可以将这个棋子移动到相邻的没有走过的位置, 谁不能移动棋子谁就输了, 棋子相邻的位置时上下左右4个方向大致思路:刚开始看没什么感觉, 不过稍微画了一下之后就发现必胜策略了首先如果n是偶数, n*n的棋盘刚好可以被2*1的砖块放满, 那么对于先手一定从2*1砖块的一端走到另外一端, 那原创 2015-04-28 20:58:24 · 713 阅读 · 0 评论 -
HDU 1847 Good Luck in CET-4 Everybody! 简单博弈
题目大意:题面中文, 题意就不说了大致思路:就是确定一下NP点就可以了, 简单的递推代码如下:Result : Accepted Memory : 1616 KB Time : 0 ms/* * Author: Gatevin * Created Time: 2015/4/28 21:18:46 * File Name:原创 2015-04-28 21:25:25 · 664 阅读 · 0 评论 -
HDU 3951 Coin Game 简单博弈
题目大意:就是现在有N个硬币摆成一个圈, 每次可以取连续的1~K个硬币, 谁取走最后一个就胜利, 注意硬币的位置不变, 也就是说如果1-2-3-4中2被拿走了, 1和3不算连续大致思路:其实就是一个简单的分析首先不难发现如果K = 1, 根据N的奇偶判断即可如果K >= 2的话, 当N 当N > K时, 如果先手一定不能一次拿走全部的硬币, 那么假设先手拿走一定数量原创 2015-05-04 22:51:16 · 608 阅读 · 0 评论 -
HDU 3537 Daizhenyang's Coin (Mock Turtles 游戏)
题目大意:就是现在有一些放成一排, 其中有一部分正面向上, 一部分反面向上, 每次可以选择1~3个硬币进行翻转, 选择翻转的硬币中最右边的那个必须是原本正面朝上的谁不能翻转了就输了问谁会获得胜利大致思路:其实这个问题是翻硬币的游戏当中经典的问题之一首先需要知道这样一个事实:如果现在又1~n个硬币有的正面朝上有的反面朝上, 每次只能翻转一个正面朝上的硬币然后可以选原创 2015-05-04 20:26:16 · 1072 阅读 · 0 评论 -
HDU 3863 No Gambling 简单博弈
题目大意:就是两个人各自连各自的点, 不能交叉, 谁连接成自己需要的上下或者左右连通 就赢了大致思路:由于图完全对称, 无论是哪一方想要完成自己的任务或者干扰另外一人都是先手有优先优势, 先手一定胜代码如下:Result : Accepted Memory : 1572 KB Time : 15 ms/* * Author: G原创 2015-05-06 17:18:35 · 1129 阅读 · 0 评论 -
HDU 2149 Public Sale 巴什博弈
题目大意:就是最简单的巴什博弈...大致思路:对个解的情况就是走的步数多余上限的情况否则就控制位置在(能走的最大步数 长度+ 1)倍数的位置代码如下:Result : Accepted Memory : 1576 KB Time : 0 ms/* * Author: Gatevin * Created Time: 201原创 2015-05-06 20:15:49 · 543 阅读 · 0 评论 -
HDU 1850 Being a Good Boy in Spring Festival 基础Nim博弈
题目大意:就是Nim游戏从SG != 0的点向 = 0的点有几种走法大致思路:如果想改变第 i 堆使得SG = 0, 那么第 i 对要变成其他堆的SG和的数量, 于是判断一下大小就可以了代码如下:Result : Accepted Memory : 1576 KB Time : 0 ms/* * Author: Gatevin原创 2015-05-06 20:25:02 · 498 阅读 · 0 评论 -
HDU 2176 取(m堆)石子游戏 简单Nim游戏
题目大意:就是HDU 1580 换了一个方式问一下而已大致思路:一样的盘Nim和是否是0, 和是否取某一堆有解取决于其和其他堆的异或和的大小代码如下:Result : Accepted Memory : 2360 KB Time : 140 ms/* * Author: Gatevin * Created Time: 201原创 2015-05-06 21:28:35 · 606 阅读 · 0 评论 -
HDU 2188 悼念512汶川大地震遇难同胞――选拔志愿者 巴什博弈
题目大意:中文题目不说大意了...大致思路:最最基本的巴什博奕的模型了, n % (m + 1) == 0时先手败, 否则先手胜代码如下:Result : Accepted Memory : 1576 KB Time : 0 ms/* * Author: Gatevin * Created Time: 2015/5/6 19原创 2015-05-06 20:03:13 · 598 阅读 · 0 评论 -
HDU 1538 A Puzzle for Pirates 海盗分金问题
题目大意:就是现在n个海盗分配m枚金币, 依次编号为P1~Pn然后海盗按照Pn->P(n - 1)->...->P2->P1的顺序提出分配方案, 然后或者的海盗投票表示是否赞成这个方案, 提出方案的海盗也会参与投票, 如果有一半或者以上的海盗赞成, 那么这个方案就通过, 按照这个方案分配金币, 否则这个海盗会被扔进海里喂鲨鱼, 各个海盗都决定聪明并且想使得自己的利益最大化, 当然这里各个海原创 2015-05-14 23:18:58 · 720 阅读 · 0 评论 -
Codeforces Gym 100379I Move the queen to the corner! 威佐夫博弈变形 + 高精度
题目大意:就是现在有一个皇后在棋盘的左上角, 棋盘大小n*m, n , m然后两个人轮流移动皇后, 每次可以向下, 右或者右下斜线方向移动, 移动步数至少一步, 至多不超出棋盘边界..然后谁将这个皇后移动到了右下角谁就输了大致思路:首先如果是到右下角赢的话就是威佐夫博奕的原形了这个地方谁到右下角谁输, 我们不妨记右下角是(0, 0)于是起点是(m - 1, n -原创 2015-08-14 17:00:11 · 957 阅读 · 0 评论 -
Codeforces Gym 100379G Wythoff’s game with three piles 博弈
题目大意:就是现在3堆石子, 每次操作从其中一堆拿走任意数量的石子, 或者从同时3堆中拿走同样数量的石子, 每次操作拿的石子数量至少是1颗两人轮流进行操作拿走最后一颗石子的人胜对于给出的三堆石子的数量a, b, c 大致思路:这个题表示看了半天觉得好像和3堆的Nim博弈没有区别就直接当Nim博弈做了...然后就AC了....不过还是需要证明的为了证明这和Ni原创 2015-08-14 20:07:08 · 659 阅读 · 0 评论 -
HDU 4101 Ali and Baba 博弈, 连通块
题目大意:就是现在对于一个N*M的地图(N, M 现在两个人博弈, 两人每次可以选择一个从外部碰到的石头敲一下, 被敲的石头HP - 1, 石头HP降为0的时候消失, 变成空地, 轮到谁不敲石头拿到珠宝谁就获胜能碰到的石头的定义是从外部通过空地可以到达那个石头的旁边(上下左右), 珠宝也是这样, 与外界联通时便可以被拿到两人轮流操作, Ali先Baba后, 问谁会获得珠宝取得胜利原创 2015-07-23 23:35:48 · 606 阅读 · 0 评论 -
HDU 1846 Brave Game 博弈水题
题目大意:就是简单的取石子游戏....n个石子两个人每次可以去1~m个, 取走最后的胜利大致思路:如果n % (m + 1) == 0后手胜, 否则先手胜...没什么好解释的了...代码如下:Result : Accepted Memory : 1620 KB Time : 0 ms/* * Author: Gatevin *原创 2015-04-28 21:10:54 · 486 阅读 · 0 评论 -
HDU 1079 Calendar Game 简单博弈
题目大意:就是现在两个人在玩一个日历, 初始选定一个起点日期然后两人轮流操作, 每次可以选择跳到下一天或者下一个月对应的同一天, 但是当下一个月没有这一天是不能选择跳到下一个月比如1月31不能跳到2月31, 因为没有那么到达2001年11月4日的人胜利, 游戏过程中如果谁超出这个日期就输了, 初始位置选定在1900年1月1日到2001年11月4日之间, 问先手是否会胜利是就Yes否则N原创 2015-04-28 20:19:27 · 644 阅读 · 0 评论 -
SGU 520 Fire in the Country 博弈SG函数(或者YY一下)
题目大意:现在给出一个原创 2014-09-03 11:44:19 · 1113 阅读 · 0 评论 -
SPOJ GAME3 9842. Yet Another Fancy Game 博弈
好久没写过题解了....得找回一下原来写ti'j原创 2014-11-07 19:04:22 · 808 阅读 · 0 评论 -
Codeforces 388C Fox and Card Game 博弈
题目大意:现在Ciel和Jiro玩一个游戏初始状态的时候桌子上面有n堆牌(1 Ciel先手, 每次可以选择一个非空的牌堆中拿走最上面的一张牌, Jiro后手每次选择一个非空的牌堆拿走最下面的一张牌, 两者都想使得自己得到的牌的和尽量大, 求在Ciel和Jiro都采取最优策略的情况下两者的分数大致思路:首先对于一个偶数张牌的堆, 当两者都采取最优策略的时候, Ciel会拿原创 2015-03-02 13:27:53 · 662 阅读 · 0 评论 -
Codeforces 335C More Reclamation 博弈
题目大意:就是现在有一条宽度是2的河流, 已经有一部分被占用为陆地了, 现在两座城市轮流来占用河流的一部分土地, 一条河不能被封堵住(第a行第1列和第a + 1行第2列被封住也算封死), 在这个前提下双方轮流选择, 知道一方不能选择为止, 最后下手选择的人赢, 也就是轮到谁而那个城市没有选择余地的时候那个城市输大致思路:首先可以将连续的没有被占用过的行作为一段来考虑, 那么这样原创 2015-03-05 12:37:37 · 632 阅读 · 0 评论 -
HDU 1525 Euclid's Game 博弈
题目大意:就是现在初始的时候有两个数a, b, 每次可以选择将其中较大的那个数减去较小的那个数的任意倍, 但是得到的数必须不小于0, 谁将其中一个数变成0谁就赢了初始给定的两个数都是正整数大致思路:其实就是一个简单的博弈问题, 我们每次考虑二元组(a, b), 不妨设 a <= b, 那么当(a, b)可以变成 (a - b, b), (a - 2*b, b), ... (原创 2015-04-21 11:39:38 · 512 阅读 · 0 评论 -
HDU 2516 取石子游戏 斐波那契博弈
题目大意:就是现在有一堆石子有n颗现在先手起始的时候能取走任意颗(至少一个, 且先手第一次不能全部取完), 然后接下来轮流取石子的时候两个人取的数量不能超过对方上一次取的两倍取走最后一颗石子的人赢, 问先手胜还是后手胜大致思路:这个题看了题解之后才知道是斐波那契博弈的模型参考资料:点击打开链接Fibonacci Nim模型:现在有一堆n石子, 两个人原创 2015-04-29 10:54:14 · 1981 阅读 · 0 评论 -
HDU 2897 邂逅明下 简单博弈
题目大意:就是现在一堆石子有n颗, 每次只能拿走p~q颗, 当剩余少于p颗的时候必须一次拿完拿走最后一颗的人败问谁会获得胜利大致思路:首先不难发现当n 以此类推所有k*(p + q) + 1 代码如下:Result : Accepted Memory : 1620 KB Time : 140 ms/* * Autho原创 2015-04-29 11:24:18 · 930 阅读 · 0 评论 -
HDU 3032 Nim or not Nim? Lasker's Nim
题目大意:就是现在初始有多堆石子, 每次可以将任意一堆拿走任意个或者将这一对分成两堆(不为空), 拿走最后一颗石子的人胜利问谁会获得胜利大致思路:这个是Lasker's Nim 的模型, 我是打表找出SG函数的规律做的...SG[4*k + 1] = 4*k + 1;SG[2*k + 2] = 4*k + 2;SG[4*k + 3] = 4*k + 4;SG原创 2015-05-02 09:37:42 · 700 阅读 · 0 评论 -
HDU 2177 取(2堆)石子游戏 Wythoff Game 求第一步方案
题目大意:就是Wythoff Game, 但是判断胜负之后还要输出方案大致思路:首先了解到Wythoff Game的性质:可以参考 HDU1527对于每一种方案讨论下一步可能走到的P点位置就行了, 细节问题看代码注释吧, 写的很详细了代码如下:Result : Accepted Memory : 1580 KB Time :原创 2015-05-08 16:20:30 · 645 阅读 · 0 评论 -
HDU 1527 (POJ 1067) 取石子游戏 Wythoff Game
题目大意: 就是Wythoff Game的原型, 每次可以拿其中一堆的任意数量或者两堆同时拿一样的任意数量, 拿走最后一颗石子的人胜大致思路: 首先可以参考这篇Wythoff Game的论文: Wythoff Game 其中提到了一个Beatty Theorem(贝蒂定理): 如果a和b都是无理数,且1a+1b=1,那么{⌊a⌋,⌊2a⌋,⌊3a⌋...}和{⌊b⌋,⌊2b⌋,⌊3b⌋..原创 2015-05-08 11:25:57 · 762 阅读 · 0 评论 -
HDU 1517 (POJ 2505) A Multiplication Game 简单博弈
题目大意:就是现在初始 p = 1, 然后两个人轮流进行操作每次可以把p 乘上2~9中的任意一个正整数, 先把 p变成 >= n的人获胜大致思路:首先不难发现对于点k, k >= n的都是P点, 那么所有能到达P点的都是N点, 所以[n / 9, n - 1]是N点, 当然这里n / 9向上取整, 所以写代码的时候注意一下, 那么接下来一段只能到达N点的是P点, 所以[n /原创 2015-05-09 11:35:16 · 761 阅读 · 0 评论 -
HDU 3389 Game 阶梯博弈
题目大意:就是现在给出一些盒子依次编号从1到n, 每个盒子中有一定的卡片, 然后每次可以选择将B中任意数量的卡片放进A中, 其中A, B满足 (A + B) % 2 == 1 && (A + B) % 3 == 0, A 轮到谁但是没有可移动的牌那个人就输了, 问谁会获得胜利大致思路:首先这个题需要了解一下阶梯博弈:一个简单的阶梯博弈的模型:现在有编号1~n的n级阶原创 2015-05-03 18:48:23 · 800 阅读 · 0 评论 -
HDU 2486 (HDU 2580, POJ 3922) A simple stone game K倍动态减法游戏
题目大意:就是现在有一堆石子, 然后先手第一次取走任意数量(至少1颗, 不能取完), 然后双方轮流拿石子的时候, 拿走的数量不能超过上一次被拿走石子数的K倍, 拿走最后一颗石子的人获胜, 给出n, k, 求出先手是否必败, 如果必胜, 则输出第一次应该拿走的最少数量大致思路:首先可以参考2009年国家集训队冬令营论文 : 《从"k"倍动态减法游戏"出发探究一类组合游戏问题》原创 2015-05-11 19:38:11 · 930 阅读 · 0 评论 -
Codeforces Gym 100814J Game 简单博弈
题目大意:就是现在初始的时候有一个字符串S, 长度不超过10000两个人轮流操作每次可以选择从左向右将连续两个字符按照给出的矩阵进行变化或者选择从右往左如果最后剩下的是元音字母则Salah获胜, 否则Marzo获胜Salah先手问谁会获胜大致思路:比较水, 考虑到S在每次变换之后长度都会接近减半, 于是可以直接dfs暴力搜索记下当前串以及当前轮到谁即可原创 2015-11-21 20:35:18 · 1155 阅读 · 0 评论