当前位置:网站首页>石子 无限拿
石子 无限拿
2022-08-04 12:36:00 【EdwinAze】
石子 无限拿
给定 n 堆石子,两位玩家轮流操作,每次操作可以从任意一堆石子中拿走任意数量的石子(可以拿完,但不能不拿),最后无法进行操作的人视为失败。
问如果两人都采用最优策略,先手是否必胜。
思路
若为 2, 3堆, 先手在3堆里拿1个, 为 2 2。
之后只要跟后手拿的数量相同, 后手一定失败。
定理:
a 1 ∧ a 2 ∧ a 3 . . . ∧ a n = 0 先手必败 a_{1} \wedge a_{2} \wedge a_{3}...\wedge a_{n}= 0 先手必败 a1∧a2∧a3...∧an=0先手必败
证明:
0 ∧ 0 ∧ 0 ∧ 0... ∧ 0 = 0 a 1 ∧ a 2 ∧ a 3 . . . ∧ a n ≠ 0 \begin{align*} 0\wedge0\wedge0\wedge0...\wedge0 = 0\\ a_{1} \wedge a_{2} \wedge a_{3}...\wedge a_{n} \not= 0 \\ & \end{align*} 0∧0∧0∧0...∧0=0a1∧a2∧a3...∧an=0
不等于0时, 设结果为 x x x
x x x 的二进制表示为 10100100 10100100 10100100
a i a_i ai的二进制表示 1100100110 1100100110 1100100110
一定存在 a i a_i ai 在 x x x 最高位 k k k 位上为1。
则 a i ∧ x < a i a_{i} \wedge x < a_i ai∧x<ai , 那么就拿走 少的那一部分。
此时 a i = a i ∧ x a_{i}= a_{i} \wedge x ai=ai∧x 带入到原来式子后得到:
x ∧ x = 0 x \wedge x = 0 x∧x=0
故先手必赢。
等于0时, 设同样可以拿走一些, 剩下 a i ′ a_i' ai′个
a 1 ∧ a 2 ∧ a 3 . . . a i ∧ . . ∧ a n = 0 a 1 ∧ a 2 ∧ a 3 . . . a i ′ ∧ . . ∧ a n = 0 式子相异或得 a i ∧ a i ′ = 0 a i = a i ′ \begin{align*} a_{1} \wedge a_{2} \wedge a_{3}. ..a_{i}\wedge..\wedge a_{n} = 0\\ a_{1} \wedge a_{2} \wedge a_{3}. ..a_{i}'\wedge..\wedge a_{n} = 0\\ 式子相异或得 \\ a_{i}\wedge a_{i}' = 0 \\ a_{i} = a_{i}' \end{align*} a1∧a2∧a3...ai∧..∧an=0a1∧a2∧a3...ai′∧..∧an=0式子相异或得ai∧ai′=0ai=ai′
代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int readInt()
{
int t ;
scanf("%d", &t);
return t;
}
int n;
int main()
{
int x;
cin >> n;
cin >> x;
n -= 1;
while(n--)
x ^= readInt();
if(x) cout << "Yes\n";
else cout << "No\n";
}
边栏推荐
- Neck modules of the yolo series
- 业务中我们如何更新缓存?Redis
- rpm安装提示error: XXX: not an rpm package (or package manifest):
- Flutter教程大全合集(2022年版)
- LeetCode Daily Question (858. Mirror Reflection)
- 【黑马早报】尚乘数科上市13天,市值超阿里;北大终止陈春花聘用合同;新东方花近200亿退学费和遣散费;张小泉75%产品贴牌代工...
- Diffusion Models:生成扩散模型
- 动规(16)-并查集基础题——亲戚(Relations)
- 获取本机IP地址的脚本
- RobotFramework二次开发(一)
猜你喜欢

技术分享| 小程序实现音视频通话

What is DevOps?Enough to read this one!

exness:美联储重现鹰派口吻,黄金承压面临转跌信号

跨链桥已成行业最大安全隐患 为什么和怎么办

博云入选 Gartner 中国 DevOps 代表厂商

“蔚来杯“2022牛客暑期多校训练营5 B、C、F、G、H、K

Small program on how to play in the construction of e-government service platform value

分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享

break与continue超详解!!!

干货丨数学规划视角下的分货优化解题思路
随机推荐
绩效考核带给员工的不能只是压力
A discussion of integrated circuits
分布式链路追踪Jaeger + 微服务Pig在Rainbond上的实践分享
云原生Devops 的实现方法
【微信小程序】信息管理与信息系统专业社会实习制作项目--垃圾指纹
yolo系列的Neck模块
Django框架MySQL数据库到models模型的映射关系
他是“中台”之父,凭一个概念为阿里狂赚百亿
七夕疯狂搞钱的年轻人,一周赚14万
酷开科技 × StarRocks:统一 OLAP 分析引擎,全面打造数字化的 OTT 模式
Focus!2022 interview must brush 461 interview questions summary + interview + resume template
Motion Regulations (18) - and check the basic questions - gang
TensorFlow学习记录(三):高阶操作 & 神经网络与全连接层
博云入选 Gartner 中国 DevOps 代表厂商
ReentrantLock 原理
两年独立开发经验程序员告诉我们赚钱的经验(听听真正赚到钱的高手做法)
形态学(膨胀、腐蚀)
js正则表达式提取内容
[牛客网]OR63删除公共字符
程序猿七夕礼物-如何30分钟给女朋友快速搭建专属语聊房