
博弈论
v5zsq
新的一天,新的不会
展开
-
POJ 2975 Nim(博弈论)
Description 有n堆石子,每堆石子有ai个,Alice和Bob轮流取,一次只能从一堆中取,可以取任意个,不能不取,谁没得取谁输,问先手有多少种必胜策略(Alice和Bob都足够机智) Input 多组输入,每组用例占一行,每组用例首先输入石子堆数n,之后输入n个整数表示每堆石子数量,以n=0结束输入 Output 对于每组用例,输出先手必赢策略的种数 Sample Inpu原创 2015-09-03 08:52:55 · 955 阅读 · 0 评论 -
HDU 6105 Gameia(博弈论+树形DP)
Description一棵树,初始时每个节点都没有被染色,BobBob有KK次机会在任意时刻一起或单独使用,每次可以切掉一条树边,游戏开始,AliceAlice和BobBob轮流对树染色,AliceAlice先来,当AliceAlice染色时,她可以选择任意一个没有染色的点将其染成白色,当BobBob染色时,他可以选择任意一个没有染色的点将其染成黑色,并将与这个点有边相连的点全部变成白色,让某个人无原创 2017-09-09 14:29:05 · 715 阅读 · 0 评论 -
CodeForces 55 C.Pie or die(博弈论)
Description一个n∗mn*m的棋盘,上面有kk个棋子,VolodyaVolodya和VladVlad开始玩游戏,VolodyaVolodya先手,他每次可以选择一个棋子往上下左右走一步,如果某个棋子出了棋盘就算VolodyaVolodya赢,VladVlad每次可以选择一个边界的格子把这个格子的属于边界的边堵住这样VolodyaVolodya就不能把某个棋子从这个边移动出去,问Volody原创 2017-08-31 20:40:31 · 547 阅读 · 1 评论 -
GYM 100090 H.Game with the Stones(博弈论)
Description n堆石子,每次要把所有数量不小于2的堆分成两个非空堆,谁不能分谁输,Constantine 和Mike轮流分,Constantine先手,双方均采取最佳策略,问谁必胜 Input 第一行一整数n表示石子堆数,之后n个整数a[i]表示每堆石子数量(1<=n<=100,1<=a[i]<=1e9) Output 输出谁必胜 Sample Input 4 2 4 6原创 2017-03-07 18:43:52 · 806 阅读 · 2 评论 -
BZOJ 3105 新Nim游戏(博弈论+线性基)
Description传统的NimNim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同)。两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴。可以只拿一根,也可以拿走整堆火柴,但不能同时从超过一堆火柴中拿。拿走最后一根火柴的游戏者胜利。本题的游戏稍微有些不同:在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴。可以一堆都不拿,但不可以全部拿走。第二回合也一样,第二原创 2017-12-22 13:31:19 · 526 阅读 · 0 评论 -
BZOJ 4589 Hard Nim(博弈论+FWT+快速幂)
DescriptionClarisClaris和NanoApeNanoApe在玩石子游戏,他们有nn堆石子,规则如下:11. ClarisClaris和NanoApeNanoApe两个人轮流拿石子,ClarisClaris先拿。22.每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后11颗石子的人获胜。不同的初始局面,决定了最终的获胜者,有些局面下先拿的ClarisClaris会赢,其余原创 2017-12-22 21:15:54 · 704 阅读 · 0 评论 -
CodeForces 78 C.Beaver Game(博弈论)
Description有nn个长度为mm的木棍,每次可以选择一根将其分成等长的若干根且每根长度不小于kk,TimurTimur和Marsel Marsel轮流,TimurTimur先手,谁不能分谁输,两人都采用最佳策略,问谁必胜Input输入三个整数n,m,k(1≤n,m,k≤109)n,m,k(1\le n,m,k\le 10^9)Output输出胜者Sample Input1 15 4Sampl原创 2017-12-30 10:33:38 · 595 阅读 · 0 评论 -
CodeForces 38 F.Smart Boy(博弈论+dfs)
Description有nnn个只由小写字母组成的字符串,两个人轮流从一个空字符串开始构造字符串,要求每个人在其操作轮要加一个字符在已有字符串前面或者后面使得这个字符串依旧是这nnn个字符串中某些字符串的子串,如果没有合法方案则该人失败,否则该人得分,假设该人操作后字符串为sss,则本轮得分Score(s)=(∑i=1|s|value(si))∗max1≤i≤|s|{|value(si)}+n...原创 2018-03-31 13:56:07 · 609 阅读 · 0 评论 -
CodeForces 39 E.What Has Dirichlet Got to Do with That?(博弈论+dfs)
Description初始状态有aaa个不同的盒子和bbb个不同的物品,StasStasStas和MashaMashaMasha两个人轮流操作,StasStasStas先手,每步可以选择加一个不同于已有盒子的盒子或者不同于已有物品的物品,如果在某人操作过后,把这些物品放入这些盒子里的方案数不小于nnn则该人失败,问谁赢Input三个整数a,b,n(1≤a≤104,1≤b≤30,2≤n≤...原创 2018-03-31 14:21:29 · 416 阅读 · 0 评论 -
CodeForces 603 C.Lieges of Legendre(博弈论)
Description有nnn堆石子,第iii堆有aiaia_i个石子,每轮可以有两种操作,第一种是选一堆非空石子取走一个,第二种是对于一个有2x2x2x个石子的偶数堆,将其分成kkk个xxx个石子的堆,问谁必胜Input第一行两个整数n,kn,kn,k,之后输入nnn个整数ai(1≤n≤105,1≤k,ai≤109)ai(1≤n≤105,1≤k,ai≤109)a_i(1\le n\l...原创 2018-04-08 22:12:27 · 465 阅读 · 0 评论 -
CodeForces 63 E.Sweets Game(博弈论+dfs)
Description给出一个六边形的糖盒,里面共191919个放糖的位置,但是初始状态可能不是所有位置都有糖,两个人轮流拿糖,每次可以拿连续的一个或多个糖,谁拿走最后一个糖谁获胜,双方都采取最优策略,问谁胜Input输入糖盒初始状态,OOO表示有糖Output输出胜者,先手胜则输出LillebrorLillebrorLillebror,后手胜则输出KarlssonKarlss...原创 2018-04-22 11:28:04 · 430 阅读 · 0 评论 -
BJTUOJ 1859 是男人就下 n 层之左右开弓(博弈论+dfs)
Description话说有一天集训队的大佬hwfhwfhwf给lanpanglanpanglanpang了一个n×mn×mn\times m的棋盘,这个棋盘之中包含了一个菜鸡lanpanglanpanglanpang无法解决的谜题。这个棋盘上的每个格子里一开始都有一枚白色或黑色的棋子,可以最先使棋盘上的棋子全部变成白子的人将获得胜利。游戏最开始两个人都只能操作第一层的棋子,当每一层的...原创 2018-04-26 18:49:24 · 372 阅读 · 0 评论 -
GYM 101653 Q.Number Game(博弈论)
Description 一个1~n的排列,每次可以拿走一个数当且仅当这个数大于其两边位置的数(0和n+1位置认为是0),一个数被拿走之后可以认为这个位置的数是0,Alice和Bob轮流拿,谁拿走1谁赢,Alice先手,在双方足够机智的条件下问谁必胜 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n,之后一个1~n的排列(1<=T<=100,1<=n<=...原创 2018-05-22 15:59:41 · 334 阅读 · 0 评论 -
CodeForces 87 C.Interesting Game(博弈论+数论)
Description两个人玩游戏,起初有一堆nnn个石子,每步一个人可以选取一堆将其分成kkk堆使得k≥2k≥2k\ge 2,且每堆石子的数量a1,...,aka1,...,aka_1,...,a_k满足a2−a1=...=ak−ak−1=1a2−a1=...=ak−ak−1=1a_2-a_1=...=a_k-a_{k-1}=1,如果某人无法完成该操作则失败,问先手第一次操作最少分成几堆可以...原创 2018-07-16 12:26:09 · 416 阅读 · 0 评论 -
CodeForces 69 D.Dot(博弈论+dfs)
Description两个人博弈,给二维平面上的一点(x,y)(x,y)(x,y)以及nnn个向量(xi,yi)(xi,yi)(x_i,y_i),每步操作可以沿着这nnn个向量移动该点,每个人有一次机会可以将当前的点沿y=xy=xy=x对称,若某人移动之后该点离远点距离超过ddd则该人失败,问两人都采取最优策略的前提下谁必胜Input 第一行四个整数x,y,n,dx,y,n,dx,y,...原创 2018-07-14 12:00:30 · 537 阅读 · 0 评论 -
HDU 6324 Problem F. Grab The Tree(博弈论)
Description有一棵nnn个节点的树,每点有点权,先手可以取其中任意数量的点,只要这些点没有邻接点,其得分即为所选点的权值异或和,而后手的得分为剩余点的异或和,先手采取最佳策略,问谁赢Input第一行一整数TTT表示用例组数,每组用例首先输入一个整数nnn表示点数,之后输入nnn个整数wiwiw_i表示每点点权,最后n−1n−1n-1行输入n−1n−1n-1条树边(1≤T≤...原创 2018-09-04 08:27:21 · 230 阅读 · 0 评论 -
HDU 6312 Game(博弈论)
Description有111~nnn这nnn个数字,两个人轮流取,每次一个人可以选取剩余数字中的一个并将这个数字所有因子(如果也在剩余数字中)全部取走,谁取走最后一个数字谁赢,问先手是否必胜Input多组用例,每组用例输入一个整数nnn(1≤n,m≤500)(1≤n,m≤500)(1\le n,m\le 500)Output若先手有必胜策略则输出YesYesYes,否则输出N...原创 2018-09-03 16:52:39 · 466 阅读 · 0 评论 -
Newcoder 146 H.Playing games(博弈论+FWT)
Description给出nnn堆石子,第iii堆有aia_iai个石子,要求取出最多堆的石子使得两人用这些石子玩取石子游戏先手必败Input第一行一整数nnn表示石子堆数,之后输入nnn个整数a1,...,ana_1,...,a_na1,...,an表示每堆石子的石子数(1≤n≤500000,1≤ai≤500000)(1\le n\le 500000,1\le a_i\le 500...原创 2018-09-19 16:23:07 · 193 阅读 · 0 评论 -
CodeForces 317 D.Game with Powers(博弈论)
Description两个人VasyaVasya和PetyaPetya玩游戏,从11 ~ nn中取数,VasyaVasya先取,如果xx之前已经被取过则所有xx的正整数次幂都不能被取,谁先没有数字可以取谁输,问谁赢Input一个正整数nn(1≤n≤1091\leq n\leq 10^{9})Output输出胜者Sample Input1Sample OutputVasyaVasyaSolution如原创 2017-08-27 12:57:20 · 664 阅读 · 0 评论 -
CodeForces 299 C.Weird Game(博弈论)
Description 两个长度为2n的01串,两个人轮流开始取数字,每次只能取两个人之前都没取过的位置的数字,n次后两个人就得到了两个长度为n的数字,谁的数字大谁赢,两个人足够机智,问是先手必胜还是后手必胜还是平局 Input 第一行一整数n,之后两个长度为2n的01串(1<=n<=1e6) Output 如果先手必胜则输出First,如果后手必胜则输出Second,如果平局则输出Dra原创 2017-07-15 17:24:03 · 839 阅读 · 0 评论 -
POJ 2505 && HDU 1517 A multiplication game(博弈论)
Description 两个人轮流用2~9来乘n,使n不断扩大,n开始为1。当给一个固定值k,谁先使n超过k谁赢 Input 多组用例,每组用例占一行为一个整数k,以文件尾结束输入 Output 对于每组用例,输出谁赢(Stan为先手) Sample Input 162 17 34012226 Sample Output Stan wins. Ollie wins. St原创 2015-09-03 08:53:10 · 585 阅读 · 0 评论 -
POJ 2425 && HDU 1524 A Chess Game(博弈论)
Description 在一个有向无环图上放着n个棋子,Alice和Bob每次可以选择其中一枚棋子沿有向边移动到任意一个后继点(一个点上可以同时有多枚棋子),最终不能移动者输。问如果两人都足够机智,先手Alice是否有必胜策略 Input 多组输入,每组用例第一行为图中点数n(点的标号从0~n-1),之后n行每行首先输入一个整数m表示与该点相连的点数,之后m个整数表示这m个点的下标,在每张图原创 2015-09-03 08:55:56 · 654 阅读 · 0 评论 -
POJ 2234 Matches Game(博弈论)
Description 有n堆石子,每堆石子有ai个,Alice和Bob轮流取,一次只能从一堆中取,可以取任意个,不能不取,谁没得取谁输,问先手是否有必胜策略(Alice和Bob都足够机智) Input 多组输入,每组用例占一行,每组用例首先输入石子堆数n,之后输入n个整数表示每堆石子的数量 Output 对于每组用例,如果先手有必胜策略则输出Yes,否则输出No Sample Inp原创 2015-09-03 08:52:41 · 982 阅读 · 0 评论 -
HDU 1536 S-Nim(博弈论)
Description 有多堆石子,每次只能从一堆石子取走集合S中某一元素数值的石子,两人轮流取,谁不能取谁输,假设两人足够机智,问先手输赢 Input 多组大用例,每组大用例第一行首先输入集合S的元素数k,之后输入k个整数表示S中的元素,第二行输入小用例组数m,之后m行每行首先输入石子堆数n,之后n个数表示每堆石子的数量,以k=0结束输入 Output 每组大用例输出占一行,对于每组小原创 2015-09-04 08:31:01 · 670 阅读 · 0 评论 -
POJ 2068 Nim(博弈论+dfs)
Description 有2n个人,两方各n个人,交叉坐,每个人可以取的石子有一个最大限制Mi,总共有S颗石子,哪一方取了最后一颗石子就输了,问先取石子的这一方是否有必胜策略 Input 多组用例,每组用例占一行,首先输入两个整数n和S表示一方人数以及总石子数,之后2*n个整数表示1~2*n这2*n个人每个人每次能拿的石子上限,以n=0结束输入 Output 如果先手有必胜策略则输出1,否原创 2015-11-01 14:00:34 · 711 阅读 · 0 评论 -
CodeForces 630 R. Game(博弈论)
Description 一学生因挂科被迫和老师玩游戏,游戏规则如下:在一个n*n的棋盘上轮流下棋,初始时棋盘全空,每次只能在空格上下棋,而且此空格上下左右不能有棋子,但是对角可以有棋子,最后谁无棋可下谁输。假设学生和老师都足够机智,现给出棋盘大小,如果先手赢则输出1,否则输出2 Input 一个整数n(1<=n<=10^18) Output 先手赢输出1,后手赢输出2 Sample In原创 2016-02-21 11:28:41 · 957 阅读 · 0 评论 -
POJ 1067 && HDU 1527 取石子游戏(博弈论)
Description 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。 Input 输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个原创 2015-06-20 15:06:40 · 734 阅读 · 0 评论 -
HDU 5724 Chess(博弈论)
Description Alice和Bob在一个n*20的棋盘上玩游戏,游戏规则如下:首先给出一个棋盘的初始状态,一些格子有棋子,一些没有,且每个格子至多放一枚棋子,Alice和Bob轮流移动棋子,每次可以将任一行上的一个棋子右移到该棋子右方第一个空格处,但不能将棋子移出棋盘,谁无法移动谁输,问Alice是否有必胜策略 Input 第一行一整数T表示用例组数,每组用例首先输入棋盘列数n,之后n原创 2016-07-25 12:15:06 · 526 阅读 · 0 评论 -
HDU 5754 Life Winner Bo(博弈论+dp)
Description B和G在一个n*m的棋盘上玩游戏,游戏规则如下:初始状态棋子在(1,1)处,两人轮流移动棋子(B先手),谁先将棋子移到(n,m)谁赢,如果棋子不在(n,m)处且无法移动则平局,有四种棋子(1国王,2车,3马,4皇后),其移动规则与国际象棋相同,现在给出棋子类型和棋盘规模,问B是否有必胜策略,假设两人都足够机智 Input 第一行一整数T表示用例组数,对于每组用例,输入三原创 2016-08-08 16:13:15 · 526 阅读 · 0 评论 -
HDU 5795 A Simple Nim(博弈论+打表)
Description n堆取石子游戏,每次可以取一堆中的任意个,或者将当前堆分为三个非空堆,问先手必胜还是后手必胜 Input 第一行一整数T表示用例组数,每组用例首先输入石子堆数n,之后n个整数表示n堆石子的石子数量ai(1<=T<=100,1<=n<=10^6,1<=ai<=10^9) Output 对于每组用例,若先手必胜则输出First player wins.,否则输出Seco原创 2016-08-26 13:38:21 · 781 阅读 · 0 评论 -
GYM 100030 B.Epic Battle(博弈论)
Description n堆石子,每堆a[i]个,每次可以将一个剩余石子数量不小于2的堆分成两个非空堆,谁不能分就输,Constantine和Mike轮流,Constantine先手,双方足够机智,问谁必胜 Input 第一行一整数n表示石子堆数,之后n个整数a[i]表示每堆石子数量(1<=n<=20,1<=a[i]<=40) Output 输出必胜者,Constantine或Mike原创 2017-03-02 16:24:13 · 494 阅读 · 0 评论 -
GYM 100827 G.Number Game(博弈论)
Description 一个1~n的排列,每次可以拿走一个数当且仅当这个数大于其两边位置的数(0和n+1位置认为是0),一个数被拿走之后可以认为这个位置的数是0,Alice和Bob轮流拿,谁拿走1谁赢,Alice先手,在双方足够机智的条件下问谁必胜 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n,之后一个1~n的排列(1<=T<=100,1<=n<=100) Output原创 2017-03-10 14:05:34 · 708 阅读 · 0 评论 -
GYM 101147 A.The game of Osho(博弈论)
Description m堆石子,每堆有对应一个(Bi,Ni),表示这堆有Ni个石子,每次可以拿Bi^x个石子(1<=Bi^x<=Ni),谁不能拿谁输,1和2轮流拿,两人足够机智,问谁必胜 Input 第一行一整数T表示用例组数,每组用例首先输入石子堆数m,之后2*m个整数(Bi,Ni)来表示每堆石子 (1<=m<=100,1<=Bi,Ni<=1e9) Output 输出必胜者 Sam原创 2017-03-21 18:46:37 · 991 阅读 · 0 评论 -
GYM 101128 G.Game of Cards(博弈论)
Description 有p叠牌,每叠牌有若干张,Alice和Bob轮流拿牌,Alice先手,每次一个人可以从任一叠牌拿走0~k张,但是要保证该叠至少剩一张牌,然后如果这叠牌最上面一张的点数不大于剩余牌数那么就从这叠牌中拿走这些牌,否则当前拿牌的人输,两人足够机智,问谁必胜 Input 第一行两整数p和k表示牌的叠数和每次最多能拿的牌数,之后p行第i行输入第i叠的牌数n,然后输入n个整数a[i原创 2017-03-13 15:33:17 · 1441 阅读 · 5 评论 -
SPOJ 20848 IGAME - Interesting Game(博弈论+数位DP)
Description 两个人玩游戏,初始给一个整数n,两人轮流操作,每次可以选择n的一位在保证该位非负的情况下减去任意值,谁先把n减到0谁赢,问在双方足够机智的情况下[A,B]中有多少值作为初始值可以使得先手必胜,有多少值作为初始值可以使后手必胜 Input 第一行一整数T表示用例组数,每组用例输入两整数A和B表示查询区间(1<=T<=1e4,1=A<=B<=1e18) Output S原创 2017-04-11 19:06:37 · 406 阅读 · 0 评论 -
GYM 100694 M.The Fifth Season(博弈论)
Description n个石子,两人轮流拿,谁不能拿就输,每次可以拿[a,b]个,问两人都采取最优策略的情况下最多可以拿多少次才能决出输赢 Input 第一行两整数n和q表示石子数和查询数,每次查询输入一个区间[a,b]表示每次可以拿的石子的数量范围(1<=n<=1e6,1<=q<=1e5) Output 对于每次查询,输出两人都采取最优策略下最多可以拿多少次 Sample Input原创 2017-03-27 08:28:12 · 651 阅读 · 0 评论 -
CodeForces 717 D.Dexterina’s Lab(博弈论+dp+矩阵快速幂)
Description n堆石子,每堆石子的数量是i的概率都是dp[i],两人轮流取石子,每次可以选任一堆取走任意数量的石子,但不能不取,谁没得取谁输,问在双方采取最佳策略的前提下先手必胜的概率 Input 第一行两整数n和x分别表示石子堆数和每堆数量上限,之后x+1个实数p[i]表示一堆石子有i个的概率 (1<=n<=1e9,1<=x<=100,0<=p[i]<=1,p[0]+p[1]+…原创 2017-04-16 15:06:07 · 898 阅读 · 0 评论 -
Newcoder 109 F.玩游戏(博弈论)
Description给定两个串SSS和TTT,∣S∣≥∣T∣|S|\ge |T|∣S∣≥∣T∣。alicealicealice和bobbobbob轮流操作串SSS,bobbobbob先手。对于每次操作,alicealicealice或bobbobbob会选择删掉SSS的第一位或最后一位。当操作以后的串的长度等于∣T∣|T|∣T∣时,游戏停止。如果停止时的串=T=T=T,则aliceal...原创 2018-10-18 19:46:41 · 219 阅读 · 0 评论