Mult-Nim博弈

Nim or not Nim?

结论

Mult−NimMult-NimMultNim博弈:有nnn堆石子,两个人可以从任意一堆石子中拿任意多个石子(不能不拿)或把一堆数量不少于22石子分为两堆不为空的石子,没法拿的人失败,问谁会胜利。

结论SG(x)=x−1[xmod4==0],x+1[xmod4==3],x[others]SG(x) = x - 1[x \bmod 4 == 0], x + 1[x \bmod 4 == 3], x[others]SG(x)=x1[xmod4==0],x+1[xmod4==3],x[others]

代码

/*Author : lifehappy
*/
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include <bits/stdc++.h>#define mp make_pair
#define pb push_back
#define endl '\n'
#define mid (l + r >> 1)
#define lson rt << 1, l, mid
#define rson rt << 1 | 1, mid + 1, r
#define ls rt << 1
#define rs rt << 1 | 1using namespace std;typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;const double pi = acos(-1.0);
const double eps = 1e-7;
const int inf = 0x3f3f3f3f;inline ll read() {ll f = 1, x = 0;char c = getchar();while(c < '0' || c > '9') {if(c == '-')    f = -1;c = getchar();}while(c >= '0' && c <= '9') {x = (x << 1) + (x << 3) + (c ^ 48);c = getchar();}return f * x;
}int sg(int x) {if(x % 4 == 0) return x - 1;else if(x % 4 == 3) return x + 1;return x;
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);// ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int T = read();while(T--) {int n = read(), ans = 0;for(int i = 1; i <= n; i++) {ans ^= sg(read());}puts(ans ? "Alice" : "Bob");}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

提高工作效率的方法

1&#xff1a;集中注意力、专注度 1&#xff09;远离分散你注意力的东西&#xff08;如&#xff1a;将手机锁到柜子里&#xff09; 2&#xff09;保持主航道不变&#xff1a;在做A的时候&#xff0c;不要因为想到了B&#xff0c;就去做B。而是判断B的重要、紧急程度&#xff…

背包dp的核心思想(动态规划)

背包dp 突然发现我一直没有真正理解背包&#xff0c;真正的背包应该是用空间换时间的一种dp方法&#xff0c;本质上就是n个物品选或不选,理论上有2n2^n2n种可能结果&#xff0c;但是背包利用的就是值域很小这一特点来重叠子结构&#xff0c;所以背包本质上处理的应该是一个集合…

秒半价,限四天!Vostro极致轻薄全能本,助你全能全开!

在信息化时代&#xff0c;电脑就是你工作和创业的“合伙人”&#xff01;每天比别人多处理几件任务、每天比别人快20分钟&#xff0c;每天比别人少重启和崩溃几次&#xff0c;日积月累获益多到算不过来&#xff01;小编四处打探&#xff0c;有三款王者电脑重磅优惠&#xff0c;…

HDU 3590 PP and QQ(反nim博弈,删边游戏)

PP and QQ 思路 删边游戏了解一下&#xff0c;其实就是个nim博弈吧&#xff0c;只是删边个数有特殊限制&#xff0c; 然后就是一个反nim博弈了。 删边定理&#xff1a; 遇到分叉口时&#xff0c;它的子树上的可操作的sg函数为所有子树节点的sg函数的异或值&#xff0c; 然后…

【活动】侬好上海,Microsoft Reactor来啦

在美国纽约、旧金山和雷德蒙德&#xff0c;在英国伦敦&#xff0c;在澳大利亚悉尼&#xff0c;在以色列特拉维夫&#xff0c;分别都有这样一处专为开发者打造的宝地&#xff0c;在这些地方&#xff1a;❖ 经常举办各种免费的技术讲座&#xff0c;与大家分享最新技术和产品❖ 频…

JDK演化系列(1.0~~~1.9)

系列文章导读 JDK 1.0包含的功能 JDK 1.1新增&优化&去掉的功能 JDK 1.2新增&优化&去掉的功能 JDK 1.3新增&优化&去掉的功能 JDK 1.4新增&优化&去掉的功能 JDK 1.5新增&优化&去掉的功能 JDK 1.6新增&优化&去掉的功能 J…

#6682. 梦中的数论(Min25筛)

#6682. 梦中的数论 推式子 ∑i1n∑jkn∑k1n[(j∣i)∧((jk)∣i)]显然有jk>j,所以我们另jkk′&#xff0c;有j>k′&#xff0c;并且j,k′都是i的约数这就相当于在σ(i)中选取一对有序对了&#xff0c;所以总的选法有C(σ(i),2)种原式∑i1nσ(i)(σ(i)−1)2∑i1nσ2(i)−∑…

A. [2021.1.29多校省选模拟11]最大公约数(杜教筛/数论)

A. [2021.1.29多校省选模拟11]最大公约数 这是一个杜教筛的经典题目&#xff0c;最后我们只需要筛一下1∗xμ(x)1*x\mu(x)1∗xμ(x)这个函数的前缀和即可&#xff0c;然后看到有111这个函数&#xff0c;我们下意识应该想到的就是μ\muμ&#xff0c;然后又有xμ(x)x\mu(x)xμ(x…

.NET Core 小程序开发零基础系列(2)——小程序服务通知(模板消息)

基于上一篇文件“.NET Core 小程序开发零基础系列&#xff08;1&#xff09;——开发者启用并校验牵手成功”的反映&#xff0c;个人觉得效果很不错&#xff0c;大家对公众号开发还是有很大需求的&#xff0c;同时也收到了很多同学的问题&#xff0c;后面我也会通过实战性文章慢…

Java工程师修炼之路

文章来自于微信公众号&#xff1a;Hollis&#xff0c;作者网站&#xff1a;https://www.hollischuang.com/ 转载过来方便查看 1 基础篇 01 面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台无关性 Java 如何实现的平台无关 …

P4900 食堂(数学式子推导)

P4900 食堂 推导 ans∑i1n∑j1iij−∑i1n∑j1i⌊ij⌋前项为∑i1ni∑j1iinv(j),两次前缀和即可得到后项为∑i1n∑j1i⌊ij⌋∑i1n∑j1id(j),nloglogn2n即可得到ans \sum_{i 1} ^{n} \sum_{j 1} ^ {i} \frac{i}{j} - \sum_{i 1} ^{n} \sum_{j 1} ^{i} \lfloor\frac{i}{j} \r…

[PowerShell]人人都值得学一点PowerShell实现自动化(2)有哪些可用的场景及方式?

部分读者反应太多知识要学了&#xff0c;学完一轮又一轮&#xff0c;笔者也不想单单为了制造学习而学习&#xff0c;所有Excel催化剂所发布的内容&#xff0c;都是笔者所亲自使用到的&#xff0c;当然很多领域也没有深挖到很底的程度。PowerShell使用场景虽然说PowerShell也是在…

[2021.1.31多校省选模拟12]随机变换的子串(线段树维护分治/字符串/自动机思想)

[2021.1.31多校省选模拟12]随机变换的子串 对于这三种操作&#xff0c;我们惊奇地发现有这样的性质&#xff0c;所有长度大于4的字符串都可以通过变换变为长度小于等于4的字符串&#xff0c;那么查询本质不同的字符串我们只需要处理12种字符串的出现次数即可。 然后对于区间所…

GG and MM(every sg 游戏)

GG and MM 结论 题意&#xff1a; 每组给n个游戏&#xff0c;每个游戏有两堆石头&#xff0c;GG和MM轮流操作&#xff0c;操作规则&#xff1a; 从两堆里面选出一堆&#xff0c;假设这堆石头有x个&#xff0c;然后在另一堆里取k*x个石头(k是正整数) 谁不能取石头谁输&…

[2021.1.13多校省选模拟2]T1(动态规划/轮廓线dp)

[2021.1.13多校省选模拟2]T1 一个经典的轮廓线dp&#xff0c;可以发现一定可以找到一条轮廓将这个图形分开&#xff0c;然后使得左半部分由左边处理&#xff0c;右半部分由右边处理&#xff0c;然后我们只需要处理这个折线即可&#xff0c;具体实现需要处理前缀和的前缀最大值&…

[PowerShell]人人都值得学一点PowerShell实现自动化(1)在VisualStudio上使用PowerShell...

最近学PowerShell的知识比较多&#xff0c;也开始有一点点可以分享的知识给大家输出&#xff0c;学一门语言&#xff0c;理当首先找准一个好用的IDE来帮助我们提高学习效率&#xff0c;本文给大家介绍如何在宇宙第一的IDE-Visual Studio上写PowerShell脚本。关于PowerShell的基…

2019-02-21-算法-进化

论代码能力&#xff1a; 给出两个 非空 的链表用来表示两个非负的整数。其中&#xff0c;它们各自的位数是按照 逆序 的方式存储的&#xff0c;并且它们的每个节点只能存储 一位 数字。 如果&#xff0c;我们将这两个数相加起来&#xff0c;则会返回一个新的链表来表示它们的…

E. Jamie and Tree(树链剖分 + 线段树)

E. Jamie and Tree 思路 直接rootvroot vrootv&#xff1b; 找lcalcalca&#xff0c;lcalca(root,u),lca(root,v),lca(u,v)lca {lca(root, u), lca(root, v), lca(u, v)}lcalca(root,u),lca(root,v),lca(u,v)中depdepdep最深的&#xff1a; rootrootroot不在lcalcalca的子树…

[2021.1.17多校省选模拟4]T1(莫比乌斯反演/组合数学/枚举倍数)

[2021.1.17多校省选模拟4]T1 一般人都会想着去枚举直线的斜率&#xff0c;但是枚举斜率之后就会产生多条直线&#xff0c;并且这些直线的长度不一&#xff0c;难以快速求解&#xff0c;所以我们考虑换一种方法枚举。 枚举最远点对的横纵坐标之差&#xff0c;这样很容易计算这…

程序员35岁不转型就退休,是真的吗?

周六下午&#xff0c;DevOps群里&#xff0c;有人贴出来这么一张图&#xff1a;据说&#xff0c;这张图来自于谷歌&#xff0c;Google程序员之间存在这一条鄙视链&#xff0c;站在顶端的是C工程师&#xff0c;其次是Java工程师&#xff0c;再次是Python工程师&#xff0c;接下来…