AGC009
A
从后往前加。
B
刚开始没看懂题意 WA
了两发 /qd
的时候把子树按照深度从小到大安排即可。
C
简单 题。
设 表示在前 个数里面选,第 个数在 集合内,另一个集合中最后选的数是第 个的方案数。
使用前缀和优化或线段树优化可以做到 或 的时间复杂度。
D
我想到的唯一一个东西就是这个东西类似于点分治的过程,但是没什么用。
首先不难发现答案是 级别的。对于每个点,记录一下它被加进来的时间 ,那么对于一种方案,它合法当且仅当对于 使得 , 的路径上都存在一个点 ,使得 。
所以我们考虑从叶子往根贪心选取。我们称一个节点被满足当且仅当其在目前的 过程中已经确定了一个祖先节点,它的 值大于这个节点。每次 一个点的时候,我们需要记录未被满足的点的时间集合,记为 。确定 的 值的时候,我们需要考虑两种限制:
- 不能在 中出现,否则 对应点到 的路径不满足了。
- 如果对于 ,有 ,那么 ,否则对应两点的路径不满足了。
把限制理清楚之后就可以直接贪心了。时间复杂度 。
E
简单的 E 题。
考虑用类似 重构树的方法把操作树建出来,那么深度为 的数 对答案的贡献就是 。设 表示深度为 的 的个数。
发现 不同,最后的答案不一定不同,原因是 导致的,例如把 个 放在哪一层答案都一样。如果存在这种情况,可以看作是 的个数减少了 。
设 表示操作树深度为 ,钦定 的不同数个数, 的个数为 时的方案数。有了这个钦定的条件,操作树除了深度最大的非叶节点有 个叶子节点儿子外,其余的所有非叶节点都仅有 个非叶节点儿子,所以 的个数也是固定的,方案数可以通过简单 得出,最终的答案就是
时间复杂度 。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App