博弈
HeartFireY
可能是ACMer、JXNU计算机科学协会前会长
展开
-
[SG函数] LightOJ.Partitioning Game
有nnn堆石子,每回合可选择把其中一堆分成数量不同的两堆,且必须分一次。不能再分的玩家输。 初始状态下的必输态:sg[0]=sg[1]=sg[2]=0sg[0] = sg[1] = sg[2] = 0sg[0]=sg[1]=sg[2]=0,然后枚举每种分堆方式打SG表即可。 注意,在求MEX的时候别用带log的数据结构(比如std::set),会超时… #include <bits/stdc++.h> //#define int long long using namespace std; c原创 2022-02-13 20:25:17 · 299 阅读 · 0 评论 -
[SG函数]Split Game(2020江西省大学生程序设计竞赛)
一开始有一个n×mn \times mn×m的纸,之后随着游戏的进行,会得到多张不同大小的网格纸,这样就可以记一张纸为一个游戏,各个游戏构成一个游戏的和。其中每一个游戏都是一个有向图游戏,不过我们要自己找到不能行动的局面。显然1∗21*21∗2与1∗31*31∗3(2∗12*12∗1和3∗13*13∗1同理)无法再次分割,且其他矩形均可以分割成这两者之一,因此选取这两个局面作为必败局面。 对于一张N×MN \times MN×M的矩形网格纸,我们可以枚举如何行动,然后得到两个子游戏,对两子游戏SGSGSG值原创 2022-02-13 19:25:40 · 2515 阅读 · 1 评论 -
[SG函数] 2021牛客寒假集训营6 H.寒冬信使2
传送门:H-寒冬信使2_2022牛客寒假算法基础集训营6 (nowcoder.com) 思路 首先回顾公平组合博弈的P点和N点: 所有终结点是必败点(P-Position) 从任何必胜点(N-Position)操作,至少存在一种方法进入必败点(P-Position) 无论如何操作,从必败点只能进入必胜点(N-Position) 那么我们开始分析本题目: 采用二进制枚举的方式,用000代表bbb,111代表www,这样可以枚举一定长度内所有的组合。 对于每一个状态,枚举能否进入必败态(初始必败态为000原创 2022-02-13 15:55:46 · 374 阅读 · 0 评论 -
The 2020 ICPC Asia Macau Regional Contest G.Game on Sequence 博弈+思维
Problem Analysis 题目大意:给定一个长度为nnn的非负整数序列AAA,游戏规则为:初始状态有一个指针指向某个序列元素A[i]A[i]A[i],你可以从iii下标后面的元素中选择一个一个二进制位与其相差不超过111位的元素,并将指针移动到该元素上。AliceAliceAlice和GrammyGrammyGrammy轮流进行游戏,不能操作的人视为输掉游戏。 对于输入而言,有两种操作,当输入1 k时,在序列尾部添加一个元素kkk。当输入2 k时,表示从kkk开始游戏。对于所有的操作,输出该次游戏的原创 2021-11-09 09:20:01 · 1175 阅读 · 0 评论 -
2021“MINIEYE杯”中国大学生算法设计超级联赛(8)GCD Game 数论+博弈
2021“MINIEYE杯”中国大学生算法设计超级联赛(8)GCD Game 质因子分解+NIM博弈 ???? | Powered By HeartFireY Problem Analysis 题目大意:BobBobBob和AliceAliceAlice在玩游戏,每次可以进行一个操作:从给定的序列中每次选择一个数aia_iai,再任意选取一个x(1≤x<ai)x(1\leq x<a_i)x(1≤x<ai),然后用gcd(ai,x)gcd(a_i,x)gcd(ai,x)代原创 2021-08-13 23:15:02 · 248 阅读 · 0 评论
分享