AGC 002 E 题解
原题传送门#
题意:给一个正整数序列 必胜客必胜者。
首先注意到删最大值,所以很容易想到将序列
但是,挪动板子这东西感觉不是很友好。(大概是我太菜了不会搞这种。所以我们尝试转化成常见的问题。那么也就是
第一篇题解
那样,将全局视作一个柱状图(或者说网格图可能更合适。然后将挪动板子视作点的移动。具体来说,我们最开始在原点
此时,失败局面就很显然了,当处于图的边界时就输了。然后考虑倒推,这个借助图也很容易解决,从必败点往前倒退一步显然便是必胜点,再往前倒退一步就是必败点。解释就是……感性理解一下,你在这个点一定可以往上面或者右边走一步,而不管怎么走都会走到必败点,所以走完之后,轮到对方走的时候对方一定就处于必败点,所以这个点就是必胜点了。以此类推,手玩一下会发现最后会呈现出黑白点相间铺满整张图的场景
然后只需要判断原点是必胜点还是必败点就好了。
一种很直观的方式就是
第一篇题解
那样。发现一条斜率为
但是我想,能不能用自己的方式理解一下?
我们发现
是从边界开始,每次分裂成两个点,分别是往下和往左走一格。那么就是说我们从原点开始博弈,每一次不管先手往哪里走,后手都可以进行与他相反的操作把当前的局势值变为
然后就可以开始乱搞了。不多说了,结束。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)