第四十三次

A

考虑没有依赖,微调法易证按 $\dfrac{a_i}{b_i}$ 升序选择最优。

维护未加入根所在连通块的点集,每次考虑当前 $\dfrac{a_i}{b_i}$ 最小的点,

若其父亲已加入根所在连通块,直接将其加在根所在连通块之后,

否则将其加在其父亲之后,并成一个点重新加入点集,

这样每次点集大小减一,最终所有点被加入根所在连通块,即最终答案序列。

B

把从 $u$ 子树中叶子的拿球分成两个阶段,第一阶段拿 $t_u=\sum\limits_{i\in\text{subtree}(u)}a_i-s_u$ 个球($u$ 子树是满的),第二阶段拿 $s_u$ 个球($u$ 子树被拿空)。

考虑 $u$ 的所有孩子两阶段的选法已经选定,把它们拼起来的方案数,

可以发现需要做完所有一阶段,再做所有二阶段,而每个阶段内操作顺序任意。

则共有 $\dfrac{\left(\sum\limits_{v\in\text{son}(u)}t_v\right)!\left(\sum\limits_{v\in\text{son}(u)}s_v\right)!}{\prod\limits_{v\in\text{son}(u)}t_v!\prod\limits_{v\in\text{son}(u)}s_v!}$ 种合并方案。

设 $f_u$ 表示 $u$ 子树拿球方案数,则 $f_u=\dfrac{\prod\limits_{v\in\text{son}(u)}f_v\left(\sum\limits_{v\in\text{son}(u)}t_v\right)!\left(\sum\limits_{v\in\text{son}(u)}s_v\right)!}{\prod\limits_{v\in\text{son}(u)}t_v!\prod\limits_{v\in\text{son}(u)}s_v!}$。

C

按括号建树,设 $s_u$ 表示 $u$ 子树内减号个数,

$f_{u,i}$ 表示 $u$ 子树中填 $i$ 个加号的表达式之和,$g_{u,i}$ 表示 $u$ 子树中填 $i$ 个加号的表达式后缀连乘之和,

设 $v$ 是 $u$ 的孩子,则有转移:

$$ \begin{aligned} s_u&\gets s_u+s_v+1\\ f_{u,i+j+1}&\gets f_{u,i+j+1}+{s_v\choose j}f_{u,i}+{s_u\choose i}f_{v,j}&(\text{填加号})\\ f_{u,i+j}&\gets f_{u,i+j}+{s_v\choose j}(f_{u,i}-g_{u,i})+g_{u,i}f_{v,j}&(\text{填乘号})\\ g_{u,i+j+1}&\gets g_{u,i+j+1}+{s_u\choose i}f_{v,j}&(\text{填加号})\\ g_{i+j}&\gets g_{i+j}+g_{u,i}f_{v,j}&(\text{填乘号})\\ \end{aligned} $$

D

[NOIP2022] 比赛

posted @ 2023-09-28 21:27  Jijidawang  阅读(2)  评论(0编辑  收藏  举报  来源