博弈论
DS-K
这个作者很懒,什么都没留下…
展开
-
HDU 1536 S-Nim
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1536题意:给一个集合,每次取石子的个数必须是集合内的数,然后询问m次,每次给你n堆石子,问先手必胜还是必败。思路:用sg函数解决。每次给出集合后,就把sg函数打出来,查询的时候直接用即可,然后根据性质把各堆的sg值异或起来。#include #include #原创 2016-08-03 20:54:33 · 219 阅读 · 0 评论 -
UVALive 7278 Game of Cards
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5330题意:有n堆卡片,每张卡片上面都有一个数字(1~10),每次操作选择一堆卡片,取走最上面(0~k)张,一堆至少要留一张,然后再取这堆卡片当前堆顶卡片上面的数字张数。原创 2016-08-14 10:03:55 · 493 阅读 · 0 评论 -
HDU 5512 Pagodas
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5512题意:有n个数1~n,现在给出a,b两个数,每次只能选择未出现过的而且是由已出现过的数集合中i,j的和或差即i+j或i-j,谁没数可选即输。思路:发现每次选数都是gcd(a,b)的倍数,那么先求一下范围内有多少个可选的数,然后判断一下奇偶即可。#include原创 2016-08-11 18:22:17 · 210 阅读 · 0 评论 -
HDU 3980 Paint Chain
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3980题意:有一个含n个点的环,每次只能选择连续的m个点去涂色,两个人轮流去涂色,不能操作的人输。思路:首先考虑到一个环,无论怎么先去涂m个点,都是一样的,会剩下n-m个点形成一条链。如果转化成链的话,这个问题模型就好做了,要么选择涂边上的m个点变成sg[i-m]这个状态,要么选原创 2016-08-07 23:31:30 · 310 阅读 · 4 评论 -
HDU 3094 A tree game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3094题意:有一棵数,两个人轮流删去树上的边,且不再与根相连的部分也会删掉。谁无边可删就输了,问谁会赢。思路:对于一个根节点,每分出去一条树枝我们就可以把它看做是一个单一游戏,那么只需要递归处理求个每个单一游戏的sg值,然后在根节点处理一下即可。如果只有一个根节点,那么sg =原创 2016-08-11 17:51:21 · 343 阅读 · 0 评论 -
HDU 2509 Be the Winner
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2509题意:有n堆苹果,每次可以取走一堆中任意连续的(可以取一堆中间的苹果把连续的一堆分成不连续的两堆),取完最后一个苹果的人输。思路:Anti-SG,胜者有两种情况。1、组合游戏的SG函数!=0,有某单一游戏的SG>1。2、组合游戏的SG函数SG==0,无某单一游戏的S原创 2016-08-11 17:44:47 · 258 阅读 · 0 评论 -
HDU 4111 Alice and Bob
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4111题意:有n堆石子,每堆有ai个,现在可以选择一堆拿走一个,或者合并两堆。问谁能赢。思路:如果全部的堆数都大于1,那么一定是把石子全部合并后一个个取走,因为输的人没法一次取走一堆,而赢的人每次把最少的合并起来。dp[i][j]表示有i堆为1的石子,j是原创 2016-08-30 17:22:20 · 375 阅读 · 0 评论 -
HDU 3595 GG and MM
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3595题意:两个人同时玩n组游戏,规则都相同,给定一组(x,y)(假设y>=x),每次操作可以在y中拿走x的整数倍变为(x,y-kx),两个人轮流进行,不能操作的那方算输。而同时玩n组游戏时,判断输赢的结果就是这n组游戏最后一组进行完的游戏的结果。思路:这种类型属于Every-S原创 2016-08-07 23:23:11 · 317 阅读 · 1 评论 -
HDU 2999 Stone Game, Why are you always there?
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2999题意:给你n个数的集合,表示你每次取石子只能为集合里的数,然后给你一排石子,编号为1~n,每次你可以取相邻位置的连续石子(数量只能为集合里的数),注意石子的位置时不变的,比如把2拿走了,1和3还是不相邻的。问先手有没有机会赢。思路:如果我们取靠边的x个石子那么就是转移成sg原创 2016-08-07 22:54:24 · 738 阅读 · 0 评论 -
HDU 2873 Bomb Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2873题意:在一个二维的棋盘上有一些炸弹,每一步可以选择引爆一个炸弹,这些炸弹(x,y)分三种情况:1、x,y>1 , 那么引爆后会在 (u, y) 和(x, v)位置产生两个新的炸弹, u2、x = 1 , y > 1,引爆后仅在(1,v)位置产生一个新的炸弹,v3、x>1 ,原创 2016-08-07 22:43:57 · 468 阅读 · 6 评论 -
HDU 1851 A Simple Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1851题意:有n堆石子,每一堆有mi个,且每次可以取[1,Li],问先手必胜还是后手必胜。思路:数据很小,直接将所有状态的sg值计算出来,然后对于每一堆直接把sg值取出来异或判断结果。#include #include #include #include #i原创 2016-08-07 22:26:17 · 372 阅读 · 5 评论 -
HDU 1848 Fibonacci again and again
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1848题意:1、 这是一个二人游戏; 2、 一共有3堆石子,数量分别是m, n, p个; 3、 两人轮流走; 4、 每走一步可以选择任意一堆石子,然后取走f个; 5、 f只能是菲波那契数列中的元素(即每次只能取1,2,3,5,8…等数量); 6、 最先取光所有石子的人原创 2016-08-07 22:20:54 · 364 阅读 · 4 评论 -
HDU 3537 Daizhenyang's Coin
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3537题意:翻硬币游戏,如果一枚硬币正面朝上,你可以将它翻过来,并且自选0~2颗它左边的硬币,改变它们的状态(正反交替)。谁不能翻谁输。思路:定义硬币全反时的sg为0,现在单个游戏就是只有一枚硬币朝上,其余都是反,其他情况都可以由单一游戏组合而成。如果位置i有一个正面朝上的硬币,原创 2016-08-05 17:43:20 · 1055 阅读 · 0 评论 -
HDU 3389 Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3389题意:有n个盒子编号1~n,每个盒子里都有一些卡牌。每次可以选择一个非空盒子A,拿任意个盒子里面的到盒子B,A、B盒子的编号必须满足(B思路:先找到移动的终点数字,1、3、4 这三个盒子是不可以再拿卡牌出来的。134这样可以把数分为三类,每一类盒子只能在自己原创 2016-08-05 17:25:18 · 288 阅读 · 0 评论 -
HDU 5795 A Simple Nim
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5795题意:一个n堆的取石子游戏,每次可以取一堆中的任意个,或者将当前堆分为三个非空堆。求先手/后手必胜。思路:打表sg函数找规律。hihocoder上面有类似的题目,不过那个是分为两堆。http://hihocoder.com/problemset/problem/1173原创 2016-08-04 20:54:59 · 536 阅读 · 0 评论 -
HDU 1404 Digital Deletions
题目链接:http://acm.hust.edu.cn/vjudge/problem/29195/origin题意:有一些数,每次操作:1、可以选择一个位置,将其数变为比原来小的非负数。2、如果一个位置是0,可以把包括该位置以内以及所有右边的数去掉。不能操作的人输。思路:长度不超过6,因为可以先打一个状态表。注意一点,如果第一个位置是0,那么先手必胜,而且打表取数时也不可以原创 2016-08-03 20:48:01 · 289 阅读 · 0 评论 -
HDU 1729 Stone Game
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1729题意:一个组合博弈论的游戏,有n个盒子,每个盒子有一个容量上限,且每一个盒子里都有一定量的石子。现在两个人轮流向盒子里加石子,一次加石子的范围是1到该盒子原石子的平方,但是盒子里的石子不能超过容量。思路:计算每堆的sg值,然后异或起来。我们可以发现一个小规律,当x*x+x原创 2016-08-03 21:06:10 · 328 阅读 · 0 评论 -
CodeForces 455B A Lot of Games
题目链接:http://codeforces.com/problemset/problem/455/B题意:两个人玩游戏,给n个字符串,两个人轮流选一个字母加到字符串后面,一开始字符串是空的,而且加完后当前字符串必须是字符串集合中一个字符串的前缀,谁无法再添加字符串谁就输了,他们玩k局这个游戏,上一局输的人下一局先手,问第一局的先手必胜还是后手必胜。思路:首先建一个trie原创 2016-07-25 17:26:01 · 259 阅读 · 0 评论