第十九次
340 - 160 = 180
A
$$ \begin{aligned} &\sum\limits_{i=1}^nf(i)\\ =&n+\sum\limits_k\sum\limits_{i=1}^n[f(i)>k]\\ =&n+\sum\limits_k\sum\limits_{i=1}^n[\forall j\in[1,k],j|i]\\ =&n+\sum\limits_k\sum\limits_{i=1}^n[\mathop{\operatorname{lcm}}\limits_{j=1}^kj|i]\\ =&n+\sum\limits_k\left\lfloor\dfrac n{\mathop{\operatorname{lcm}}\limits_{j=1}^kj}\right\rfloor \end{aligned} $$
$\mathop{\operatorname{lcm}}\limits_{j=1}^kj$ 增长很快,枚举 $k$ 即可。
B
操作顺序不影响结果,所以不妨设先操作了 $i$ 行,再操作了 $k-i$ 列,
则这 $k-i$ 列每列都比开始时少了 $i\times p$,此时分数为只操作这 $i$ 行的分数 $+$ 只操作这 $k-i$ 列的分数 $-(k-i)\times i\times p$。
预处理只操作行 $i$ 次的最大分数 $f_i$,只操作列 $i$ 次的最大分数 $g_i$,则答案为 $\max\limits_{i=0}^kf_i+g_{k-i}-(k-i)\times i\times p$。
注意答案可能很小,所以 $\max$ 的初值要设小一些。
C
排序后序列的子序列唯一对应原序列的子序列排序后的结果,所以先排序。
设 $f_i$ 表示前 $i$ 位的子序列的美味值之和,则 $f_i=2f_{i-1}+a_i\sum\limits_{j=1}^{i-1}2^{j-1}a_j$,容易做到单次线性。
考虑动态 DP,则有:
$$ \begin{vmatrix} f_{i-1}&\sum\limits_{j=1}^{i-1}2^{j-1}a_j&2^{i-1} \end{vmatrix} \times \begin{vmatrix} 2&0&0\\ a_i&1&0\\ 0&a_i&2 \end{vmatrix} = \begin{vmatrix} f_i&\sum\limits_{j=1}^i2^{j-1}a_j&2^i \end{vmatrix} $$
每次单点修改相当于排序后序列上单点删除,单点插入,平衡树维护之。
注意初始序列要先排序,不能直接依次加入。
D
把 $\prod a_i^2$ 转化成组合意义,即在每段车程中放不同的两个球的方案数。
设 $f_{i,j}$ 表示考虑到第 $i$ 个点,最后一段车程放了 $j$ 个球,
若第 $i$ 个点开放,则:
$$ \begin{aligned} &f_{i+1,0}=f_{i,0}+f_{i,2}\\ &f_{i+1,1}=2f_{i,0}+f_{i,1}+2f_{i,2}\\ &f_{i+1,2}=f_{i,0}+f_{i,1}+2f_{i,2} \end{aligned} $$
若第 $i$ 个点不开放,则:
$$ \begin{aligned} &f_{i+1,0}=f_{i,0}\\ &f_{i+1,1}=2f_{i,0}+f_{i,1}\\ &f_{i+1,2}=f_{i,0}+f_{i,1}+f_{i,2} \end{aligned} $$
矩阵加速即可。
记得取模。

浙公网安备 33010602011771号