第四十三次
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] 比赛
咕