博弈
_Ark
这个作者很懒,什么都没留下…
展开
-
Luogu P2148 [SDOI2009]E&D (sg函数 博弈)
题目洛谷传送门题解打表找sgsgsg规律。严谨证明见:纳尔的博客CODE#include <bits/stdc++.h>using namespace std;int sg(int a, int b) { if(a&1 && b&1) return 0; return sg(a+1>>1, b+1>>...原创 2019-10-30 13:45:37 · 196 阅读 · 0 评论 -
HDU 5754 Life Winner Bo 博弈
博弈4合1车是nim博弈。王后是威佐夫博弈。王和骑士写两个1000*1000的预处理即可。打sg表找规律。。王随便做。车是两堆石子的nim游戏实际上车和骑士的必败状态都在对角线上。因为后手可以调整。王后就是裸的威佐夫博弈CODE#include <bits/stdc++.h>using namespace std;int main() { int T, o...原创 2019-08-20 11:25:26 · 166 阅读 · 0 评论 -
BZOJ 3105: [cqoi2013]新Nim游戏
线性基+贪心即求一个异或线性无关的集合的元素和的最大值贪心的正确性见拟阵CODE#include <bits/stdc++.h>using namespace std;const int MAXN = 105;int n, v[MAXN], a[30];inline bool ins(int x) { for(int i = 29; ~i; --i) ...原创 2019-08-20 09:32:28 · 178 阅读 · 0 评论 -
BZOJ 2927: [Poi1999]多边形之战 (博弈)
题意有一个凸多边形,顶点编号逆时针从0到n-1.现在这个n边形被剖分成n-2个三角形,给出这n-2个三角形的顶点,保证这是用n-3条不交叉的对角线划分出来的.现在第一个三角形是黑色,其他都是白色.两名玩家轮流操作,每一次能够把处于外层的三角形取走,最后取到黑色三角形的人获胜,问先手是否必胜.这里外层的定义是有两条边暴露在外面.分析我们把每一个三角形看成一个点,相邻的三角形连边(类似于对偶图)...原创 2019-03-18 22:56:19 · 209 阅读 · 0 评论 -
BZOJ 4147: [AMPPZ2014]Euclidean Nim (分类讨论博弈神题)
orz PoPoQQQ神犇,每一篇题解都写得很清楚(看了PoPoQQQ的哲♂学三部曲,瑟瑟发抖)CODE#include <cstdio>#include <algorithm>using namespace std;#define stop(x) return puts(x), 0inline void read(int &num) { char...原创 2019-03-18 21:52:44 · 133 阅读 · 0 评论 -
BZOJ 1982 / Luogu SP2021: [Spoj 2021]Moving Pebbles (找平衡状态)
这道题在论文里看到过,直接放论文原文吧在BZOJ上是单组数据,而且数据范围符合,直接int读入排序就行了.代码:#include <cstdio>#include <algorithm>using namespace std;const int MAXN = 100005;int n, a[MAXN];int main () { scanf("%d", ...原创 2019-03-18 20:52:38 · 176 阅读 · 0 评论 -
BZOJ 3895 3895: 取石子 / Luogu SP9934 ALICE - Alice and Bob (博弈 记忆化搜索)
转自PoPoQQQ大佬博客题目大意:给定n堆石子,两人轮流操作,每个人可以合并两堆石子或拿走一个石子,不能操作者输,问是否先手必胜直接想很难搞,我们不妨来考虑一个特殊情况假设每堆石子的数量都>1那么我们定义操作数b为当前石子总数+当前堆数-1若b为奇数,则先手必胜,否则后手必胜证明:若当前只有一堆,则正确性显然否则:若b为奇数,那么先手只需进行一次合成操作,此时操作数会-1...原创 2019-03-18 19:43:23 · 443 阅读 · 0 评论 -
BZOJ 1188 / Luogu P3185 [HNOI2007]分裂游戏 (SG函数)
题意有n个格子,标号为0 ~ n-1,每个格子上有若干石子,每次操作可以选一个0 ~ n-2的格子上的一颗石子,分裂为两颗,然后任意放在后面的两个格子内,这两个格子可以相同.求使先手必胜的第一步的方案数以及最小字典序的方案.分析每一个石子都是独立的,所以考虑某一位上的一颗石子的SG函数,再异或起来就行了.实际上只用异或石子数为奇数的,因为偶数个石子异或两次相当于没有异或.我们先把位置反向并...原创 2019-03-18 12:32:47 · 105 阅读 · 0 评论 -
BZOJ 1022 / P4279 Luogu [SHOI2008]小约翰的游戏 (反Nim游戏) (Anti-SG)
题意反Nim游戏,两人轮流选一堆石子拿,拿到最后一个的输.问先手是否必胜.分析怎么说,分类讨论?情形1:首先考虑最简单的情况,所有石子数都为1.那么奇数堆石子为必败,偶数为必胜情形2:然后考虑只有一堆石子&gt;1.那么先手一定可以通过拿完这一堆石子或者是留下一个石子,使得剩下的全部是1.而这两种操作后的局面一种是奇数个1,一种是偶数个1.所以先手一定可以留给后手奇数个1的局面,从而让...原创 2019-03-18 11:53:23 · 166 阅读 · 0 评论 -
BZOJ 1299: [LLH邀请赛]巧克力棒 【SG函数/博弈分析/高斯消元】
因为太懒,放个博客我只写了O(2n)O(2^n)O(2n)的CODE#include <cstdio>int n, x[15];int main () { for(int T = 1; T <= 10; ++T) { scanf("%d", &n); for(int i = 0; i < n; ++i) scanf(...原创 2019-03-17 22:02:59 · 106 阅读 · 0 评论 -
BZOJ 2281: [Sdoi2011]黑白棋 (Nim游戏+dp计数)
题意这题目有一点分析#include &lt;cmath&gt;#include &lt;cstdio&gt;#include &lt;cstring&gt;#include &lt;algorithm&gt;using namespace std;namespace READ { inline void read(int &amp;num) {原创 2019-03-17 20:49:16 · 142 阅读 · 0 评论 -
BZOJ 3576: [Hnoi2014]江南乐 (SG函数)
题意有nnn堆石子,给定FFF,每次操作可以把一堆石子数不小于FFF的石子平均分配成若干堆(堆数&amp;gt;1&amp;gt;1&gt;1).平均分配即指分出来的石子数中最大值减最小值不超过111.不能进行操作就算输.询问先手是否有必胜策略.分析因为每一推石子实际上是独立的.于是就可以求出每一堆石子的SGSGSG函数后再异或起来.于是看看怎么求SG(N)SG(N)SG(N).方法是枚...原创 2019-03-16 12:10:28 · 193 阅读 · 0 评论