【luogu AGC035E】Develop(分类讨论)(DP)
Develop
题目链接:luogu AGC035E
题目大意
一开始有 -1e18~1e18 的所有整数,然后你每次操作可以在 1~N 中选一个还在的数 x,擦掉他,然后查看 x-2,x+K,如果没有就把数加上。
然后问你你操作若干次之后,剩下的数有多少中情况。
思路
考虑先把有跟没有互换。
然后发现如果我们要 同时都出现,那我们一定要先弄 ,再弄 ,不然会把 擦掉。
然后对于这个关系我们建一条边 ,同理有 。
那也就是说我们要选一些点集,使得不存在环。
(因为只有是 DAG 你才能安排出顺序)
然后我们按 的奇偶性进行讨论。
如果 是偶数,那形成的环就是 这样的。
那就是我们把位置奇偶分别做一次,就不能出现连续的 个都选你的情况,直接 前 个位置,最后选了连续的 个的情况,直接 DP 即可。
如果 是奇数,那考虑环是什么样的。
会发现可以形如在偶数的下标跳若干个 ,然后跳一下 ,在奇数的部分跳一段 ,再跳 。
(盗用一张图就是这样的:)
然后你把 分在同一层,那我们可以理解为一个环是这样的一条路径:
往上,往右,往上。
然后两次往上的和 ,也就是总共的长度是 。
那你也可以 DP,设 为前 层当前的路径长度是 ,右边一条值的路径的长度是 。
然后转移一下即可。
代码
__EOF__

本文作者:あおいSakura
本文链接:https://www.cnblogs.com/Sakura-TJH/p/luogu_AGC035E.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Sakura-TJH/p/luogu_AGC035E.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现