博弈
文章平均质量分 55
johsnows
正在静下心来学算法的acmer
展开
-
codeforces 768 E Game of Stones(博弈)
题意:算是nim的变形题吧给n堆石子,在一堆石头上取的石头数量只能去一次,比如你在一堆石子上取了了4个石子,那么接下里你就不能在这堆石子上取4个石子了.问后手是否必胜.结题思路:如果没有最后那个条件,那就是普通的nim,我们去求每堆石子的数量的亦或和即可.但是这里明显是不行的.考虑到nim中石子数量其实就是最多能取石子的步数,最后的亦或和也就是最大步数的亦或和,我们可以原创 2017-02-21 11:17:05 · 707 阅读 · 0 评论 -
hdu 5724 Chess(sg函数)
题意:两个人在一个n*20的棋盘上下期,每行上已经放置一些棋子,每个棋子可以往右边移动一格,如果右边没有棋子的话,或者跳往右边第一个没有棋子的格子,问先手是否有必胜策略解题思路:这题要用到状态压缩和sg函数每行有20格,我们可以用一个二进制数来表示一行中那些位置有棋子摆放,如果为1就是有棋子摆放。压位之后就可以表示出每一行的状态了,棋盘上每行的棋子只能往右跳,所以每行都原创 2017-04-07 20:19:00 · 319 阅读 · 0 评论 -
hihocode #1172 : 博弈游戏·Nim游戏·二
时间限制:10000ms单点时限:1000ms内存限制:256MB描述Alice和Bob这一次准备玩一个关于硬币的游戏:N枚硬币排成一列,有的正面朝上,有的背面朝上,从左到右依次编号为1..N。现在两人轮流翻硬币,每次只能将一枚正面朝上的硬币翻过来,并且可以随自己的意愿,在一枚硬币翻转后决定要不要将该硬币左边的任意一枚硬币也翻一次(正面翻到背面或背面翻到原创 2017-04-08 11:52:28 · 570 阅读 · 0 评论 -
hihocoder #1173 : 博弈游戏·Nim游戏·三
#1173 : 博弈游戏·Nim游戏·三时间限制:10000ms单点时限:1000ms内存限制:256MB描述在这一次游戏中Alice和Bob决定在原来的Nim游戏上增加一条规则:每一次行动时,不仅可以选择一堆取走任意数量的石子(至少取1颗,至多取出这一堆剩下的所有石子),还可以选择将一堆石子分成两堆石子,但并不取走石子。比如说有一堆石子原创 2017-04-08 12:02:09 · 606 阅读 · 0 评论 -
spoj Interesting Game (数位dp+nim博弈)
题意:有一个long long 大小的数,alice和bob轮流将其中每一位的数减小任意数量到0为止,将所有位置为0的人赢,每次alice都是先手,问[l,r]区间内有多少个数是alice必赢,多少个数是bob必赢。解题思路:队友cyk推荐的题目,确实蛮有意思的233.减数字游戏其实就是取石子游戏,然后问你l,r区间的话用一下数位dp去求有多少个数每位数^为0就行了。原原创 2017-05-03 16:20:12 · 373 阅读 · 0 评论 -
codeforces 347 c Alice and Bob(博弈 && 数学)
题意:给出一个数的set,a和b每次轮流选两个不同的数,当这两个数的差的绝对值在set里不存在时,就可以把这个差值加入到set里,当有人不能加入时输,游戏结束。解题思路:其实能加入多少个数是固定的,跟先后操作顺序无关。所以我们只需要确定可以步数即可以加入多少个数,然后判断奇偶就可以确定谁赢了。然后怎么确定呢,找规律我们可以发现当一个set里的数成等比数列的时候,我们就无法再原创 2017-05-23 21:53:20 · 425 阅读 · 0 评论 -
sdut 3893 Return of the Nim(matrix nim)
题意:n堆石子,n为质数,(2解题思路:这是个1*n的matrix nim,貌似只能解n为奇数的情况和n=2的情况,n=2的时候就是威瑟夫博弈。n不是2的情况的时候,考虑这个题如果没有第二种操作,就是nim博弈,我们可以考虑去每堆石子去k个石子是否会影响当前的np状态。对于n状态,我们不需要用第二种操作,用第一种操作就肯定可以找到一个继承状态是必败的,即异或为0.而对于一个原创 2017-05-08 21:18:30 · 570 阅读 · 0 评论 -
HackerRank - stone-division (sg函数)
题意:给出一堆石子,再给出一个集合,有m个数,每次你可以将石子等分成x堆,x取自集合,两人轮流操作,不能操作的输,问先后手谁赢。解题思路:简单的sg函数,因为一些原因石乐志的把sg函数给排除了,恩,比赛的时候应该去针对题目思考吧。然后最后主函数里直接判断了sg[n]输出答案错了好几发怀疑自己不会sg了,这题做的真的是窝心。。代码:#include原创 2017-06-18 11:02:01 · 383 阅读 · 0 评论 -
codeforces 812 E. Sagheer and Apple Tree(树上博弈)
题意:a和b在玩游戏,一棵树有n个节点,每个叶子节点的深度的奇偶性相同,每个人每次可以有两次操作,第一种是将一个非叶子节点的苹果移动到儿子节点上,第二种是将叶子节点的苹果吃掉。a先手,b每次游戏开始前可以进行一次交换,把u,v两个节点的苹果数量交换,问有多少队u,v,使最后b获胜解题思路:考虑在普通的nim上增加一个操作,就是可以增加一堆石子。那么这个操作实际上是没有用的,原创 2017-06-02 17:12:31 · 821 阅读 · 0 评论