HDU 2509 Nim博弈变形
2024-10-19 01:29:42
1、HDU 2509
2、题意:n堆苹果,两个人轮流,每次从一堆中取连续的多个,至少取一个,最后取光者败。
3、总结:Nim博弈的变形,还是不知道怎么分析,,,,看了大牛的博客。 传送门
首先给出结论:先手胜当且仅当(1)所有堆石子数都为1且游戏的SG值为0,(2)存在某堆石子数大于1且游戏的SG值不为0。
证明:
(1)若所有堆石子数都为1且SG值为0,则共有偶数堆石子,故先手胜。
(2) i)只有一堆石子数大于1时,我们总可以对该堆石子操作,使操作后石子堆数为奇数且所有堆得石子数均为1 ii)有超过一堆石子数大于1时,先手将SG值变为0即可,且总还存在某堆石子数大于1。因而,先手胜。
#include<bits/stdc++.h>
#define F(i,a,b) for (int i=a;i<b;i++)
#define FF(i,a,b) for (int i=a;i<=b;i++)
#define mes(a,b) memset(a,b,sizeof(a))
#define INF 0x3f3f3f3f
using namespace std;
typedef long long LL;
const int N=; int main()
{
int n,a[];
while(~scanf("%d",&n)) {
int ans=,flag=;
F(i,,n) {
scanf("%d",&a[i]);
ans^=a[i];
if(a[i]>) flag=;
}
if(!flag) {
if(ans) puts("No");
else puts("Yes");
} else {
if(ans) puts("Yes");
else puts("No");
}
} return ;
}
最新文章
- 使用eclipse搭建maven项目
- 编写可维护的JavaScript
- 日志分析 第一章 ELK介绍
- sql2008清空日志
- Effective Java 20 Prefer class hierarchies to tagged classes
- java连接mysql(三)
- HDU 4632 Palindrome subsequence (区间DP)
- Android入门教程之我见
- Android 抓包,监控流量工具之 mitmproxy
- javascript新窗口打开链接window.open()被阻拦的解决办法
- 一步一步重写 CodeIgniter 框架 (8) —— 视图的嵌套输出与返回
- 关于hashCode与equals
- 持续集成之 Nuget 进阶
- CentOS7 VMware-Tools安装与共享文件夹设置
- [Swift]LeetCode792. 匹配子序列的单词数 | Number of Matching Subsequences
- ajax json struts JSP传递消息到action返回数据到JSP
- 在CentOS7服务器端启动jupyter notebook服务,在windows端使用jupyter notebook,服务器充当后台计算云端
- 类的三大方法 与__init___
- maven构建SSM项目
- windows上的Qt 5的依赖部署打包