ABC 256

写在前面

越来越菜了

E

一个显然的思路,考虑在 \(v\)\(u\) 前会产生贡献时连一条 \(u \to v\) 的有向边。

  • 当且仅当形成环时,一定会产生贡献,题上说取最小,故我们在这个环上找到最小的不满值,累加入答案。

  • 当未形成环时,总有一种方式不会产生贡献。

code

F

来补赛时没写出来的锅了

\(B_x=\sum_{i=1}^x A_i\)

对于每一个 \(A_i\) ,只有在 \(i\) 后才会对答案产生贡献。

所以 \(A_i\)\(C_x\) 有贡献,当且仅当 \(x \in [i,n]\),每次贡献 \(1\)\(C_x=\sum_{i=1}^x(x-i+1) A_i\)

所以 \(A_i\)\(D_x\) 有贡献,当且仅当 \(x \in [i,n]\) ,每次贡献 \(x-i+1\), 运用等差数列求和公式可得 \(D_x=\sum_{i=1}^x \frac {(x-i+1)\cdot(x-i+2)} {2} \cdot A_i\)

将式子展开成九项在合并同类项可得 \(D_x=\frac 1 2 \sum_{i=1}^x[x^2+(3-2i)x+(i-1)(i-2)]A_i\)

进一步化简 \(D_x=\frac 1 2 [\sum_{i=1}^x x^2 A_i+\sum_{i=1}^x (3-2i)A_i+\sum_{i=1}^x(i-1)(i-2)A_i]\)

对于这个式子需要维护的是中括号里的三个和式,用树状数组可以做到 \(log~n\) ,总复杂度 \(q~log~n\)

code

G

Ex

posted @ 2022-06-19 18:41  starrylasky  阅读(43)  评论(0)    收藏  举报