第五十一次

A

依次加入每个数,栈维护当前无法合并的数,每次把加入的数和栈顶尽量多个数合并。bitset 维护质因子来维护这个过程。

B

注意到 L,R 的狗的交友方案集合 $S$ 和 U,D 的狗的交友方案集合 $T$ 相互独立,

设 $f(x)$ 表示 $x$ 这种交友方案的价值,简单推导可知答案为 $|T|\sum\limits_S f(x)+|S|\sum\limits_Tf(x)$,

只需要求 $|S|,|T|,\sum\limits_Sf(x),\sum\limits_Tf(x)$,以求 $|S|,\sum\limits_S f(x)$ 为例。

注意到每行的交友方案集合 $s_i$ 相互独立,则 $|S|=\prod|s_i|,\sum\limits_Sf(x)=\sum\dfrac{|S|\sum\limits_{s_i}f(x)}{|s_i|}$,只需求 $|s_i|,\sum\limits_{s_i}f(x)$。

问题转化为,求每行的交友方案的个数、价值和。随便拿出一行考虑。

设 $f_{i,j}/g_{i,j}$ 表示前 $i$ 只狗,有 $j$ 只 R 狗已算贡献但还未匹配的方案的价值和 / 个数,考虑转移。

考虑 $i+1$ 这只狗不交朋友,则有转移:

$$ \begin{aligned} f_{i+1,j}\gets f_{i+1,j}+f_{i,j}\\ g_{i+1,j}\gets g_{i+1,j}+g_{i,j} \end{aligned} $$

考虑 $i+1$ 这只狗交朋友,若它是 R 狗,则有转移:

$$ \begin{aligned} f_{i+1,j+1}&\gets f_{i+1,j+1}+f_{i,j}+a_{i+1}\times g_{i,j}\\ g_{i+1,j+1}&\gets g_{i+1,j+1}+g_{i,j} \end{aligned} $$

若它是 L 狗,则有转移:

$$ \begin{aligned} f_{i+1,j-1}&\gets f_{i+1,j-1}+j\times(f_{i,j}+a_{i+1}\times g_{i,j})\\ g_{i+1,j-1}&\gets g_{i+1,j-1}+j\times g_{i,j} \end{aligned} $$

则这行的交友方案数为 $g_{n,0}$,价值和为 $f_{n,0}$。

C

啥玩意,看不懂啊。

D

$f(n)=\prod f(p^c)=(\prod(p+1)^c)^{1919810}\times\prod\dfrac{(p^{114514})^2}{((p+1)^{1919810})^2}$,前半部分容易维护,考虑后半部分。

考虑在每种质因子的前两次出现处统计其贡献,对每个质因子 $z$ 维护 $l_z$ 表示其前 $z$ 的倒数第二次出现,

则问题变为对每个区间内的、$l_z$ 小于区间左端点的质因子 $p$,求 $\dfrac{p^{114514}}{(p+1)^{1919810}}$ 之积。

multiset 维护 $l_z$。动态二维数点,树套树维护之。

posted @ 2023-10-10 21:49  5k_sync_closer  阅读(2)  评论(0编辑  收藏  举报  来源