Atcoder Grand Contest 056 B - Range Argmax
因为一组 可能对应多组 ,考虑怎么让决策唯一化。
我们从大到小依次钦定每个值的位置,即倒着遍历 ,找到最左端的位置 满足,对于现在还活着的所有区间 满足 ,都有 ,令 ,然后删去所有包含 的区间。显然对于一组合法的 ,我们总能唯一还原出对应的排列 。
这样以来,原本对 计数可以转化为对排列 计数。即计算有多少个不同的 ,满足这组 对应的 按照这种方式构造以后还原出来的排列刚好也是 。
对于一个合法的排列 ,以区间 为键值建立笛卡尔树,显然笛卡尔树的形态是唯一的。而对于一棵合法的笛卡尔树,要对应得到合法的 显然只能从根开始按先序遍历依次赋值 ,也就是说合法的笛卡尔树与排列形成双射,因此考虑对笛卡尔树进行 DP。
假设当前考虑到笛卡尔树上的区间 ,我们枚举 中最大值的位置 ,递归处理 和 的部分。但是根据我们的先决条件,这里的 是所有合法的 中最靠左的,所以对于 的取值也自然要有一些限制。这里有一个结论:设 为 最大值的位置,那么 合法的充要条件是, 都是合法的,且不能存在一个 。
必要性:如果不存在 ,那么把最大值钦定在 也是合法的。充分性:如果存在 ,那么根据左区间的合法性可知把最大值钦定在 以左是不合法的,而如果把最大值钦定在 中某个位置,那么有 ,也不合法,这样最左端合法位置就是 了。
这样以来考虑 表示有多少种不同的以 为根的合法的笛卡尔树数量,满足 最大值位置 。预处理 表示当 最大值位置为 的时候, 最大值位置最小是多少,这样转移可以做到 。
时间复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2022-02-10 2022.2.8 模拟赛题解
2022-02-10 Codeforces 309E - Sheep(二分+贪心)
2022-02-10 洛谷 P5548 - [BJ United Round #3] 押韵(单位根反演+幂级数)
2021-02-10 数论学习笔记
2021-02-10 洛谷 P7323 - [WC2021] 括号路径(启发式合并)