我之前做过一些博弈的题目,以为博弈都是DP,结果被坑了很多次,其实博弈有很多种,在此,把我见过的类型都搬上来. 1,HDU3951(找规律) 题意:把n枚硬币围成一个圆,让Alice和Bob两个人分别每人每次拿k(1<=k<=m)枚连续的硬币,谁能拿到最后谁赢: 思路:找规律,A拿了之后,B只要把剩下的分成偶数块,B就能赢,找到的规律就是除了m=1 && n&1是A赢,其余全是B赢,即B能够分成偶数块: #include <cstdio> #include…
转自PoPoQQQ大佬博客 题目大意:给定n堆石子,两人轮流操作,每个人可以合并两堆石子或拿走一个石子,不能操作者输,问是否先手必胜 直接想很难搞,我们不妨来考虑一个特殊情况 假设每堆石子的数量都>1 那么我们定义操作数b为当前石子总数+当前堆数-1 若b为奇数,则先手必胜,否则后手必胜 证明: 若当前只有一堆,则正确性显然 否则: 若b为奇数,那么先手只需进行一次合成操作,此时操作数会-1,且仍不存在大小为1的堆 因此只需要证明b为偶数时先手必败即可 若先手选择了合成操作,那么操作数-1且不存…
题目描述 众所周知,Alice和Bob非常喜欢博弈,而且Alice永远是先手,Bob永远是后手. Alice和Bob面前有3堆石子,Alice和Bob每次轮流拿某堆石子中的若干个石子(不可以是0个),拿到所有石子中最后一个石子的人获胜.这是一个只有3堆石子的Nim游戏. Bob错误的认为,三堆石子的Nim游戏只需要少的两堆的石子数量加起来等于多的那一堆,后手就一定会胜利.所以,Bob把三堆石子的数量分别设为 {k,4k,5k}(k>0). 现在Alice想要知道,在k 小于 2^n 的时候,有多…
题面传送门 神仙题. 首先注意到此题的游戏是一个 ICG,故考虑使用 SG 定理解决这个题,显然我们只需对每个连通块计算一遍其 SG 值异或起来检验是否非零即可.注意到我们每删除一个点到根节点的路径后留下的是一些互不影响的子树,并且剩余部分的 SG 值就是剩余子树的 SG 值异或起来,因此我们考虑设 \(sg_u\) 表示 \(u\) 子树部分的 SG 值,我们再实时维护一个 \(t_v\) 表示删除 \(v\) 到当前计算的节点(譬如我们计算 \(sg_u\) 的时候当前计算的节点就是 \(u…
2021.12.15 P2328 [SCOI2005]超级格雷码(找规律填空) https://www.luogu.com.cn/problem/P2328 题意: 输出n位B进制的格雷码. 分析: 好吧,咱先写出来一部分格雷码试试. 当 \(n=2,B=2\) 时(这个表咱竖着看) 00 10 01 11 似乎没有什么规律,咱继续,当\(n=3,B=3\) 时(这个表咱竖着看) 000 122 200 001 121 201 002 120 202 012 110 212 011 111 21…
2021.12.08 平衡树--FHQ Treap http://www.yhzq-blog.cc/fhqtreapzongjie/ https://www.cnblogs.com/zwfymqz/p/7151959.html 1. FHQ Treap FHQ Treap与Treap一样,都有关键码和优先级.关键码满足二叉搜索树的性质--左子树的关键码小于根节点,右子树的关键码大于根节点.优先级满足堆的性质--所有子树的优先级均大于或小于根节点的优先级的值. 因此,本篇博客默认优先级越大越优.…
2021.12.06 平衡树--Treap https://www.luogu.com.cn/blog/HOJQVFNA/qian-xi-treap-ping-heng-shu 1.二叉搜索树 1.1 性质 左子树的值都小于父节点,右子树的值都大于父节点. 2.堆 2.1 性质 是一颗完全二叉树,并且子节点不大于或小于父节点 3.Treap 一棵Treap上的节点有关键码和优先级.关键码满足二叉树的性质,优先级满足堆的性质.关键码就是真实的值,优先级 rand() 一个就成. 3.1 旋转rot…
2021.05.03 T3 数字 问题描述 一个数字被称为好数字当他满足下列条件: 1. 它有**2*n**个数位,n是正整数(允许有前导0) 2. 构成它的每个数字都在给定的数字集合S中. 3. 它**前n位之和与后n位之和相等**或者它**奇数位之和与偶数位之和相等** 例如对于n=2,S={1,2},合法的好数字有1111,1122,1212,1221,2112,2121,2211,2222这样8种. 已知n,求合法的好数字的个数mod 999983. 输入 第一行一个数n. 接下来一个长…
Description Alice和Bob在玩游戏.有n个节点,m条边(0<=m<=n-1),构成若干棵有根树,每棵树的根节点是该连通块内编号最 小的点.Alice和Bob轮流操作,每回合选择一个没有被删除的节点x,将x及其所有祖先全部删除,不能操作的人输 .注:树的形态是在一开始就确定好的,删除节点不会影响剩余节点父亲和儿子的关系.比如:1-3-2 这样一条链 ,1号点是根节点,删除1号点之后,3号点还是2号点的父节点.问有没有先手必胜策略.n约为10w. 显然只要算出每颗子树的sg值就可以…
[UOJ266]Alice和Bob又在玩游戏 Tags:题解 作业部落 评论地址 TAG:博弈 题意 不同于树的删边游戏,删掉一个点删去的是到根的路径 题解 这题只和计算\(SG\)有关,博弈的有关内容可以移步这篇博客 这和翻棋子游戏不同!每个点不能单独考虑 考虑计算一个游戏(子树\(x\))的\(SG\):对其后继状态取\(mex\) 这里的后继状态是指去掉子树\(x\)内任意一个点所得的若干子游戏的异或和(联通块) 用\(SG[x]\)维护子树\(x\)游戏的\(SG\)值,考虑转移给父亲\…