bzoj2066: [Poi2004]Gra

Screenshot_2026-11-04-16-26-45-46.jpg 立即下载

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2066

思路:首先谁移到m-1谁就输了,这是多么显然啊....

其实这个可以转化为上一篇中的阶梯NIM。

连续的一堆就是一个阶梯上的石子,两个连续的一堆间隔的空阶梯数是空格数-1(这点一定要注意)

然后考虑对于连续的一堆棋子,如果我们从中间移走一个,使之变为数量为x和y的两段,那么就等价于从一个阶梯向下一个阶梯移动了y个石子。


对于方案数,只要枚举+判断就可以了

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
const int maxn=1000010;
using namespace std;
int n,m,a[maxn],cnt,b[maxn],ans,tot;char ch;

void read(int &x){
	for (ch=getchar();!isdigit(ch);ch=getchar());
	for (x=0;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
}

int main(){
	scanf("%d%d",&m,&n);
	for (int i=1;i<=n;i++) read(a[i]);
	if (a[n]==m-1){
		ans=1;
		for (int i=n;i&&a[i]-a[i-1]==1;i--,ans++);
		return printf("%d\n",ans),0;
	}
	a[n+1]=m-1;
	for (int i=n;i;i--)
		if (a[i+1]-a[i]==1) b[cnt]++;
		else if (a[i+1]-a[i]==2){
			if (cnt&1) ans=ans^b[cnt];
			b[++cnt]=1;
		}
		else{
			if (cnt&1) ans=ans^b[cnt];
			cnt+=3-((a[i+1]-a[i])&1),b[cnt]=1;
		}
	if (cnt&1) ans=ans^b[cnt];
	if (ans)
		for (int i=1;i<=cnt;i++)
			if ((i&1)&&(ans^b[i])<b[i]||i%2==0&&(ans^b[i-1])>b[i-1]&&(ans^b[i-1])<=b[i-1]+b[i])
				tot++;
	printf("%d\n",tot);
	return 0;
}


互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识 立即下载

相关推荐

【动态多智能体系统的通信感知编队控制】一种新颖的通信感知编队控制策略,用于动态多智能体系统研究(Matlab代码、Python代码实现)

内容概要:文档名为《Plecs全桥LLC谐振变换器仿真模型.txt》,但其内容并未深入介绍Plecs环境下全桥LLC谐振变换器的具体建模与仿真过程,而是呈现为一份涵盖多领域科研主题的资源列表。文档内容广泛涉及多智能体系统控制、无人机路径规划、电力电子变换器、状态估计、信号处理、优化算法等研究方向,并多次提及Matlab/Simulink、Python等工具的代码实现。整体来看,该文档更像是一份科研项目目录或技术资源索引,重点推介了包括LLC谐振变换器在内的多种控制系统与电力电子仿真模型,但对标题所述核心内容缺乏详尽的技术描述与实现细节。; 适合人群:电力电子、自动化、控制工程、信号处理及多智能体系统等相关领域的研究生、科研人员与工程技术人员。; 使用场景及目标:①为科研工作者提供跨学科的技术方向参考与研究选题灵感;②获取电力系统、无人机控制、信号处理等领域成熟的Matlab/Simulink或Python仿真代码资源,用于算法验证与模型复现。; 阅读建议:建议将此文档作为科研资源导航目录使用,读者可根据自身研究方向筛选感兴趣的主题,并通过文中提供的公众号或网盘链接获取完整的代码、仿真模型与配套资料进行深入学习与实践。

【BZOJ】2066: [Poi2004]Gra -阶梯Nim

阶梯Nim

远行客 280

产业园区运营负责人如何提升企业技术需求与科研资源的精准匹配效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BZOJ 2066 [Poi2004]Gra

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2066题意: 有m个格子排成一行,从左到右编号1到m,其中n个给定的格子里有石子,且编号为m的格子里没有石子。两个人轮流操作,每次操作要求选择一个石子,石子会移动到它右边第一个不含石子的格子里。将某个石子移动到编号为m的格子的人胜利,问先手有多少种操作方案能使先手必胜。2≤m≤10^9,1≤n≤10^6,n<m

skywalkert's space 1308

英飞凌TLF35584 SBC实战:手把手教你配置WDG看门狗与ERR监控(基于AUTOSAR架构)

本文详细介绍了基于AUTOSAR架构的英飞凌TLF35584 SBC芯片WDG看门狗与ERR监控功能的配置方法。通过硬件平台搭建、寄存器级配置、AUTOSAR模块集成及诊断策略优化,帮助开发者快速掌握关键配置技巧,提升嵌入式系统的安全性和可靠性。

weixin_30256901的博客 477

决策树(分类树、回归树)

决策树 前言:第一篇博客,最近看完决策树,想着归纳一下,也方便自己以后回顾。写的会比较全面一些,可能会有很多不太正确的地方,欢迎大家交流指正 : ) 决策树模型: 决策树模型是运用于分类以及回归的一种树结构。决策树由节点和有向边组成,一般一棵决策树包含一个根节点、若干内部节点和若干叶节点。决策树的决策过程需要从决策树的根节点开始,待测数据与决策树中的特征节点进行比较,并按照比较结果选...

你午睡了吗 9万+

[bzoj2066][Poi2004]Gra——阶梯博弈Nim

题目大意: 有m 个格子排成一行,从左到右编号1 到m,其中n 个给定的格 子里有石子,且编号为m 的格子里没有石子。两个人轮流操作,每次操 作要求选择一个石子,石子会移动到它右边第一个不含石子的格子里。 将某个石子移动到编号为m 的格子的人胜利,问先手有多少种操作方案 能使先手必胜。 思路: 首先倒数第二个格子上肯定不可以有格子,有的话就赢了,所以这是必胜状态。所以两个人都不想把石...

ylsoi的博客 386

ADS中使用Momentum进行电源完整性分析示例

这个应用可以帮助工程师用更快的时间使用ADS Momentum完成PDN分析。该应用描述了利用ADS Momentum RF模拟器进行PDN分析的方法,大大缩短了计算时间。 该分析主要应用与高速数字设计。 在此应用中使用了以下ADS特性: ADS设计流程集成(ADFI)。 电磁协同仿真。 Momentum仿真。 仿真流程如下: 在Allegro中创建ADFI文件 要将Alleg...

zb6075_lb的专栏 7009

[POI2004]GRA

Description 让我们考虑一个在m x 1 的板子上玩的游戏,板子被从1 到 m编号. 现在板子上有n 个棋子, 每个都严格占据板子上的一个格子. 没有一个棋子占据格子m. 每个单独的移动遵循以下原则: 移动的人选择一个棋子把它移动到比它大的格子中第一个未被占领的格子里去. 两个选手交替移动, 谁先占据格子m, 谁赢.下面是一个例子(m = 7), 一个选手可以把2 移到 4, ...

a5163273的博客 311

AnyLogic 8.8.3 最新版安装指南:从下载到配置的完整流程(附Java环境设置技巧)

本文提供了AnyLogic 8.8.3最新版从下载到配置的完整安装指南,重点解决了跨平台(Windows、macOS、Linux)部署中的常见问题。核心内容详细讲解了Java开发环境(JDK)的精准配置技巧,包括版本选择、系统环境变量设置与验证,确保为仿真建模工作奠定稳固基础。

efc1234567的博客 762

Linux系统下SAPGUI安装包选择与避坑指南

本文详细介绍了在Linux系统下选择和安装SAPGUI安装包的策略与避坑指南。重点解析了不同版本安装包的关键区别,特别是Linux版必须包含linux-lib.jar和linux64-lib.jar文件,避免误用Mac或Windows版导致的兼容性问题。文章还提供了针对Ubuntu、RHEL等不同Linux发行版的安装实战指南,以及常见报错的解决方案,帮助用户顺利完成SAPGUI的安装与配置。

weixin_28366353的博客 675

【AIGC】Qwen3-Embedding:Embedding与Rerank模型新标杆

Qwen3-Embedding:文本嵌入与重排序模型的技术解析与应用实践

一个内容严谨、方向前沿、极具实践价值的AI大模型技术分享站 3095

bzoj 2430: [Poi2003]Chocolate 贪心

发现每一次切割都会使另一方向所有切割次数++. 而每一刀的代价就是 cost*切割次数,故贪心按照cost从大到小排序即可. #include <bits/stdc++.h> #define N 200000 #define LL long long using namespace std; void setIO(string s) { string...

EM LGH 175

沉降预测算法-指数曲线法

沉降预测的指数曲线法原理和代码实现

yh523的博客 1010

PHP与Node.js的对比及优缺点分析

PHP和Node.js是两种常用的服务器端编程语言,它们在不同的应用场景下各有优势和劣势。本文将全方位比较PHP和Node.js的特点,以及它们在编程中的优缺点,并提供相应的源代码示例供参考。需要注意的是,本文只是对PHP和Node.js的一些优缺点进行了简要介绍,实际应用中还需要考虑其他因素,如团队经验、项目规模和预算等。最终的选择应该基于全面的评估和需求分析。PHP:PHP是一种同步阻塞的编程语言,它的处理方式是一次只处理一个请求。Node.js:Node.js的性能较高,特别适合处理高并发的请求。

ByteSparkX的博客 888

poi2004 WYS

program xqz; const maxm=200001; var i,j,k,m,n,ll,rr,x,de,ans,o:longint; a,b,s,t,y:array[0..maxm] of longint; c,f:array[0..maxm*2] of longint; procedure swap(var a,b:longint); var k:longint; begin k:=a; a:=b; b:=k; end; procedure sort1(ll

fly-fly 939

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Tales of Mystery and Imagination——5、The Tell-Tale Heart

It is true that I had been-and I ma-very nervous,but do you really think that I am mad?I could see and hear more clearly 7-not less,because of the disease.My hearing,more than anything,was excellent.I

ahao214——Dreamspace 1712

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

bzoj1188: [HNOI2007]分裂游戏

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1188 思路:这题比较特殊,每个豆子是一个独立的游戏,SG的下标是豆子所处的位置。 知道了这一点就很好做了。 首先对于一个位置的两个豆子,一个人走一步,另一个人也可以走这一步,所以就抵消了 从SG函数的角度理解,这两个豆子的SG值相同,最后反正会被异或掉。 所以豆子数等于a[

thy的专栏 1753

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

bzoj3576: [Hnoi2014]江南乐

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3576 思路:每堆石子都构成一个独立的游戏,所以SG[x]就表示只有一堆数量为x的石子的游戏的SG值,显然当x 然后我们枚举每种分法,可以得到所有的SG值。但是这是O(n^2),TLE.... 为了降低复杂度,我们发现了一个很神奇的性质 n除以m最多只有O(根号n)个不同的值。

thy的专栏 1237

bzoj1115: [POI2009]石子游戏Kam

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1115 思路:首先差分,求出相邻两堆石子的个数之差,要求单调不降就是差分数组大于等于0。 然后我们考虑在第i堆移走j个,就等价于i+1与i的差扩大j,i与i-1的差缩小j。 这样就转化为另一个经典的游戏模型,阶梯NIM。 有n个阶梯,每个阶梯上都有一定数量的石子,每次都可以移任

thy的专栏 972

Codeforces 305E Playing with String

传送门:http://codeforces.com/problemset/problem/305/E 思路:首先每个字符都可选的子串可以看成一个独立的游戏,那么最终的答案就可以通过所有独立游戏的SG值的异或和得到。 代码: #include #include #include const int n=5010; using namespace std; int sg[n];char

thy的专栏 857

Codeforces 168D Wizards and Huge Prize

传送门:http://codeforces.com/problemset/problem/168/d 思路:这题比较恶心,细节很多,不过还好cf可以看数据... 首先考虑一个弱化版,只会横着或竖着以及横着和竖着一起来。 我们可以发现,一次操作后就相当于把一个大的游戏分成1或2或4个独立小游戏 SG值与位置也有关系,所以SG[u][d][l][r]表示左上坐标为(u,d)右下坐标为(l,r)

thy的专栏 643
上一篇: bzoj1115: [POI2009]石子游戏Kam
下一篇: bzoj3576: [Hnoi2014]江南乐
thy_asdf
博客等级 码龄12年 16粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值