时效性
A
设 为关键点构成的虚树覆盖到的点集(注意不是虚树点集),
查询 时,可以发现 能到的点集就是 并上 到任意一个关键点(容易发现选哪个关键点都是一样的)的点集。
钦定第一次操作的 为根,则 即为所有关键点的根链之并,
的最小值即为这些根链最小值的最小值,每次加关键点时更新这个最小值即可。
然后钦定“ 到任意一个关键点的点集”中这个关键点选择根,则这个点集的最小值就是 的根链最小值。
两部分最小值取最小值即可。
B
可以发现若最终所有棋子移动到 ,则操作次数一定是初始时所有棋子到 的距离和除以二,
于是只需求出哪些 可以作为最终所有棋子移动到的位置。
设 表示 子树内初始时棋子个数, 表示 子树内棋子经过若干操作后到 距离和最小是多少, 表示 子树内棋子初始时到 距离和,
考虑 若有一孩子 满足 ,则 子树内的棋子一定不能全部移动到 上,
于是此时的最优策略为其他所有子树的棋子均选择 子树内的棋子匹配,
这样其他所有子树的棋子均被移到 上,而 子树内的棋子到 距离和还剩 ,
也就是 。
如果 没有这样的孩子 ,那最终至多剩一个棋子与 距离为 ,也就是 。
以 为根跑这个 DP,若得到的 ,则 可以作为最终所有棋子移动到的位置。
发现需要以每个点为根的 DP 值,换根 DP 即可。
C
警惕 。
由期望线性性,只需把每个 加起来,
考虑给定 ,如何求出 。
设 表示 ,则 。
设 表示循环节为 的串的个数,以 为例,
所有循环节为 的串,会使 加上 。
同理,问题变为求两个初始全 的序列,分别经过若干次前缀加后,对应位乘积之和,扫描线即可。
现在只剩 没有求出。可以发现 ,狄利克雷前缀差分即可。
D
设 的长度为 ,记 为关键点,当且仅当从 能引出 条互不相交的,长度为 的路径,
则只需判断阵型的某一端能否到达关键点。
以某个关键点为根,依次将阵型的两端移动至其子树内最深的叶子,
若某一时刻阵型的两端有祖先关系,则阵型可以到达关键点。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具