
ACM/ICPC组合游戏/SG
just_sort
Acdream.
展开
-
BZOJ 小约翰的游戏John 反尼姆博弈
Description 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取 的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不取,我们规定取到最后一 粒石子的人算输。小约翰相当固执,他坚持认为先取的人有很大的优势,所以他总是先取石子,而他的哥哥就聪明 多了,他从来没有在游戏中犯过错误。小约翰一怒之前请你来做他的参谋。自原创 2017-01-18 22:16:00 · 340 阅读 · 0 评论 -
POJ 1740 A New Stone Game 博弈,规律
题目链接:这里 题意:对于n堆石子,每堆若干个,两人轮流操作,每次操作分两步,第一步从某堆中去掉至少一个,第二步(可省略)把该堆剩余石子的一部分分给其它的某些堆。最后谁无子可取即输。 解法:算规律题吧。。来自网上大神的一段分析。首先看两堆:1 1 的状态肯定是先手输~~但是俩数不一样的话就是先手赢了。。再看三堆:1 1 1的状态肯定是先手赢,1 2 1也是先手赢。。。1 2 2也是先手赢。。总原创 2017-03-11 10:59:28 · 464 阅读 · 0 评论 -
POJ 3480 John Anti-Nim博弈变形
题目链接:这里 题意:有若干堆石子,两个人轮流从其中一堆里面取出若干个(不能不取),若某个人取完后没有石子了,则这个人输。先手的人叫John。 解法: 先手胜当且仅当 (1)所有堆石子数都为1且游戏的SG值为0 ,(2)存在某堆石子数大于1且游戏的SG值不为0 证明: (1)若所有堆石子数都为1且SG值为0,则共有偶数堆石子,故先手胜。 (2) i)只有一堆石子数大于1时,我们原创 2017-03-11 10:01:32 · 577 阅读 · 0 评论 -
POJ 3710 Christmas Game 无向图删边 经典的删边游戏 Tarjan缩点
题目链接:这里 题意:有多棵树进行删边博弈,注意这里的”树“可能存在环,形状也许是非常诡异的。 解法:下面来自cxlove神的博客 我们利用The Fusion Principle:任何环内的节点可以融合成一点而不会改变图的sg值。(下面我们称它为融合原则) 融合原则允许我们把任意一个根图简化为一个等效的可以通过冒号原则(即Colon Principle)简化为竹竿的树。 我们会发现,拥有原创 2017-03-11 15:50:45 · 721 阅读 · 0 评论 -
ZOJ 3057 Beans Game 博弈DP
题目链接:这里 题意:三堆石头,每次从一堆中取走若干,或者从两堆中取走相同的数量 ,最后取的人胜。 解法:博弈DP,dp[i][j][k]表示三堆石头分别为i,j,k状态时候是否为必胜。 之后便是N,P态的转换,成必败态能到达的一定是必胜态。不能用记忆化搜索,常数太大,会TLE。而且还卡内存,不能用int,要用bool型。//ZOJ 3057 博弈DP#include <stdio.h>#i原创 2017-03-11 16:45:18 · 523 阅读 · 0 评论 -
HDU 4388 Stone Game II 博弈,规律题
题目链接:这里 题意:最初有n堆石子,每堆石子个数已知。两人轮流执行操作,如果当某人无法执行有效操作时即输。操作分两步: 第一步为:选择其中一堆石子假定石子个数为a,拿走个数不为0的一些石子使得该堆石子剩余k个并且保证(0 < k < a,k^a < a),^为异或符号。第二步为:加入一堆新的石子,石子个数为k^a,当然你也可以使用技能使得加入的石子个数变为(2k)^a。不过每个人每局游戏只能使用原创 2017-03-11 17:21:25 · 1286 阅读 · 0 评论 -
CF 787C 带平局的博弈DP
题目链接:http://codeforces.com/contest/786/problem/A 题意:有n个物体,顺时针围成一个圈,然后有两个人在博弈,1位置是先进,谁先到了1位置,谁就输了。已知这两个人的初始位置是不确定的,然后问你对于每一个可能的初始位置第一个人和第二个人能否赢得这个游戏。 解法: 带平局的博弈DP。dp[i][j]表示第i个人在初始j位置的状态,1代表必胜态,2代表必败态原创 2017-03-25 10:03:05 · 1066 阅读 · 0 评论 -
UVALive 6913 I Want That Cake 博弈dp
题目链接:这里 DescriptionThere was an interesting game played on a popular Korean reality TV Show. 12 players in 3 teams — 4 persons in each team — lined up in one row in random order. The game master appr原创 2017-03-16 15:03:27 · 669 阅读 · 0 评论 -
BZOJ 1228: [SDOI2009]E&D 博弈,SG函数,组合游戏
Description小E 与小W 进行一项名为“E&D”游戏。游戏的规则如下:桌子上有2n 堆石子,编号为1..2n。其中,为了方便起见,我们将第2k-1 堆与第2k 堆(1 ≤ k ≤ n)视为同一组。第i堆的石子个数用一个正整数Si表示。一次分割操作指的是,从桌子上任取一堆石子,将其移走。然后分割它同一组的另一堆石子,从中取出若干个石子放在被移走的位置,组成新的一堆。操作完成后,所有堆的石子数原创 2017-04-13 20:03:33 · 649 阅读 · 0 评论 -
BZOJ 1434: [ZJOI2009]染色游戏 博弈
[Submit][Status][Discuss] Description 一共n × m 个硬币,摆成n × m 的长方形。dongdong 和xixi 玩一个游戏, 每次可以选择一个连通块,并把其中的硬币全部翻转,但是需要满足存在一个 硬币属于这个连通块并且所有其他硬币都在它的左上方(可以正左方也可以正 上方),并且这个硬币是从反面向上翻成正面向上。dongdong 和xixi 轮流操作。原创 2017-04-29 21:18:43 · 915 阅读 · 0 评论 -
POJ 2348 欧几德里博弈,博弈好题
题目链接:这里 题意:给两个整数a和b,两个人先后用较大的数减去较小数的整数倍,并且保证相减后不为负数。先把一个数变为0的人获胜。 解法:真心觉得博弈难,可能是自己找必胜状态找得不好,感觉是需要一些智商来刚博弈的。下面的分析来自这位同学 很显然,当大数是小数的整数倍时为必胜态。 从这道题学会一个叫做自由度的东西,感觉能够为博弈推理提供思路。 博弈基本就是一个推理必胜态和必败态的过程。自由度原创 2017-03-11 10:26:43 · 854 阅读 · 0 评论 -
HDU 3915 Game NIM博弈 XOR高斯消元
题目链接:见这里 题意:有n堆石子,每个人只能从某一堆至少拿走一个,不能拿者败。问事先拿走某些堆的石子,使得先手必败。 解法:简单的高斯消元的应用,要求的就是给定n个数中选k个数异或为0的方法数。将n个数用二进制写成n列,之后就很明显了,未知数x1–xn非1即0,表示第i个数取不取。 用高斯消元计算出有多少不确定的变元,这些变元要么是1,要么是0,所以答案即为2的变元数次方。//HDU 395原创 2017-03-04 18:14:58 · 561 阅读 · 0 评论 -
POJ 2068 Nim 博弈DP
题目链接:见这里 解题方法: 博弈树DP,dp[i][j]表示第i个人取,还有j块石头 。 当j为0的时候,没有石头,这时候是胜,为1。 后继中有必败态的为必胜态。这个DP几乎就是NP图的推导。#include <stdio.h>#include <string.h>int dp[20][8200], n, s, a[20];int dfs(int id, int remain){原创 2017-03-02 15:31:32 · 409 阅读 · 0 评论 -
BZOJ 1115: [POI2009]石子游戏Kam 阶梯尼姆游戏
Description有N堆石子,除了第一堆外,每堆石子个数都不少于前一堆的石子个数。两人轮流操作每次操作可以从一堆石子中移走任意多石子,但是要保证操作后仍然满足初始时的条件谁没有石子可移时输掉游戏。问先手是否必胜。 Input第一行u表示数据组数。对于每组数据,第一行N表示石子堆数,第二行N个数ai表示第i堆石子的个数(a1<=a2<=……<=an)。 1<=u<=10 1<=n<=1000 0原创 2017-02-09 22:58:38 · 426 阅读 · 0 评论 -
HDU 1536 S-Nim SG函数
Arthur and his sister Caroll have been playing a game called Nim for some time now. Nim is played as follows:The starting position has a number of heaps, all containing some, not necessarily equal, num原创 2017-03-01 10:49:08 · 316 阅读 · 0 评论 -
UVALive 5059 Play with Stones SG函数,难度较低
题目链接: 见这里 题意: 有n堆石子,分别有a1,a2,”’,an个。两个游戏者轮流操作,每次可以选择一堆,拿走至少石子,但不能拿走超过一半的石子。比如,有3堆石子,每堆分别有5,1,2个,则再下一轮中,游戏者可以从第一堆中拿1个或者2个,第2堆中不能拿,第3堆只能拿一个。谁不能拿石子,谁就输。 解题方法:本题和NIM游戏有些差别,但是也可以看做n个单堆游戏之和。遗憾的是,即是是单堆游戏,由于原创 2017-03-01 11:15:08 · 526 阅读 · 0 评论 -
几个博弈小题总结 脑子是个好玩意,我也想有一个。
序 : 下面的例题只给了题源,没给题目链接,但是都可以根据对应的题号找到题目来提交代码,例如HDU 2897就是hdoj的2897题。然后题意大概都是我YY之后的,也许有些描述错误,然后某些解题思路来自网上大神的博客,如果有觉得侵犯了权利请联系我(ps,本来就是写给自己看的,巨丑,然后每个地方好放,放到博客怎么也会给人看到的,请多多包涵)博弈真的是智力题啊。。。1, HDU 2897 题意:一堆n原创 2017-03-01 17:53:01 · 429 阅读 · 0 评论 -
POJ - 2975 NIM博弈的必胜策略方案数
题目链接:https://vjudge.net/contest/152381#problem/B 题意:求解NIM博弈先手必胜的方法数。 解题思路:在必胜态时,先手要做的就是拿走某堆石头中的m个,使得XOR变成0。将必败态转移给后手,题目就是就是问有多种使得XOR变成0的方法数? => (ki - m) ^ (XOR ki) 后面的XOR ^ ki代表所有的异或值以后上ki,即等价于除了ki这原创 2017-03-02 11:53:16 · 1090 阅读 · 0 评论 -
POJ 1067 取石子游戏 威佐夫博弈
题目链接:见这里 解法:威佐夫博弈(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。如果甲面对(0,0),那么甲已经输了,这种局势我们称为奇异局势。前几个奇异局势是:(0,0)、(1,2)、(3,5)、(4,7)、(6,10).可以看出,a0=b0=0,ak是未在前面出现过的最小自然数,而 bk=ak+k原创 2017-03-02 13:21:53 · 303 阅读 · 0 评论 -
POJ 2484 A Funny Game 智力,推理
题目链接:见这里 题意:本题题意为,给出N个硬币围成一个圈,然后两个人从这圈硬币中轮流拿1个或毗邻的2个硬币。直到全部拿完为止,最后一个拿的人为胜者。 解题方法: 当N<3时,肯定是最开始先拿的人胜利。因为此时,N==1,N==2,只要拿一次就可以拿完。当N>=3时,肯定是第2个拿的人胜利,因为当N为偶数时,不管第1个人,怎么拿, 第2个人拿与第一个人同样数量的硬币,且与第1人所拿硬币呈中心原创 2017-03-02 13:25:01 · 664 阅读 · 0 评论 -
POJ2425(树形,无向无环图博弈) SG函数
Description Let’s design a new chess game. There are N positions to hold M chesses in this game. Multiple chesses can be located in the same position. The positions are constituted as a topological gr原创 2017-03-02 13:53:45 · 917 阅读 · 0 评论 -
POJ 2960 S-Nim 博弈论,SG函数
Total Submissions: 4284Accepted: 2254 Description Arthur and his sister Caroll have been playing a game called Nim for some time now. Nim is played as follows: The starting position has a number of原创 2017-03-02 14:09:54 · 812 阅读 · 0 评论 -
BZOJ 1457: 棋盘游戏 SG函数
Description 有一个100 * 100的棋盘,其中左下角的编号为(0, 0), 右上角编号为(99, 99)。棋盘上有N个Queen,最开始第i个Queen的位置为(Xi, Yi)。现在有两个玩家依次来操作,每一次一个玩家可以选择其中一个Queen,将它跳到(Xi – k, Yi)或(Xi, Yi - k)或(Xi – k, Yi - k), 其中k > 0。注意在游戏的过程中,一个格子原创 2017-05-03 13:18:40 · 470 阅读 · 0 评论