NOIP 第十四次

时效性

A

S 为关键点构成的虚树覆盖到的点集(注意不是虚树点集),

查询 x 时,可以发现 x 能到的点集就是 S 并上 x 到任意一个关键点(容易发现选哪个关键点都是一样的)的点集。

钦定第一次操作的 x 为根,则 S 即为所有关键点的根链之并,

S 的最小值即为这些根链最小值的最小值,每次加关键点时更新这个最小值即可。

然后钦定“x 到任意一个关键点的点集”中这个关键点选择根,则这个点集的最小值就是 x 的根链最小值。

两部分最小值取最小值即可。

B

可以发现若最终所有棋子移动到 x,则操作次数一定是初始时所有棋子到 x 的距离和除以二,

于是只需求出哪些 x 可以作为最终所有棋子移动到的位置。

si 表示 i 子树内初始时棋子个数,fi 表示 i 子树内棋子经过若干操作后到 i 距离和最小是多少,gi 表示 i 子树内棋子初始时到 i 距离和,

考虑 u 若有一孩子 v 满足 fv+sv>gugvsv,则 v 子树内的棋子一定不能全部移动到 u 上,

于是此时的最优策略为其他所有子树的棋子均选择 v 子树内的棋子匹配,

这样其他所有子树的棋子均被移到 u 上,而 v 子树内的棋子到 u 距离和还剩 fv+sv(gugvsv)

也就是 fu=fv+sv(gugvsv)

如果 u 没有这样的孩子 v,那最终至多剩一个棋子与 u 距离为 1,也就是 fu=gumod2

x 为根跑这个 DP,若得到的 fx=0,则 x 可以作为最终所有棋子移动到的位置。

发现需要以每个点为根的 DP 值,换根 DP 即可。

C

警惕 n=1

由期望线性性,只需把每个 P(f(si)=f(s(imodn)+1)) 加起来,

考虑给定 x=ai,y=a(imodn)+1,如何求出 P(f(si)=f(s(imodn)+1))

cj/dj 表示 P(f(si)=j)/P(f(s(imodn)+1)=j),则 P(f(si)=f(s(imodn)+1))=cj×dj

fo 表示循环节为 o 的串的个数,以 cj 为例,

所有循环节为 ox 的串,会使 cj|jo 加上 fo26x×1o

dj 同理,问题变为求两个初始全 0 的序列,分别经过若干次前缀加后,对应位乘积之和,扫描线即可。

现在只剩 fo 没有求出。可以发现 gp=opfo=26p,狄利克雷前缀差分即可。

D

st 的长度为 L,记 p 为关键点,当且仅当从 p 能引出 3 条互不相交的,长度为 L 的路径,

则只需判断阵型的某一端能否到达关键点。

以某个关键点为根,依次将阵型的两端移动至其子树内最深的叶子,

若某一时刻阵型的两端有祖先关系,则阵型可以到达关键点。

posted @   Jijidawang  阅读(5)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示