ABC276 F~G
F:
简单题,考虑增量模拟。
考虑选 \(i\) 带来的新的贡献。
如果 \(A_j\le A_i\),那么贡献是 \(A_i\)。
否则贡献是 \(A_j\)。
用两个树状数组维护即可。
G:
构造 \(\left\{b\right\}\) 满足:
- \(b_1=a_1\)
- \(b_i=a_i-a_{i-1},i\gt1\)
由题目条件限制得:
- \(b_i\ge0\)
- \(b_i\ne0\pmod3,i\gt1\)
- \(\sum b_i\le M\)
由于 \(\left\{a\right\}\) 和 \(\left\{b\right\}\) 一一对应,于是可以数 \(\left\{b\right\}\)。
令 \(b_i=3y_i+x_i\),其中 \(0\le x_i\lt3\),当固定了 \(\left\{x\right\}\) 之后,就相当于 $\sum y_i\le\left \lfloor \frac{M-\sum x_i}{3} \right \rfloor $ 的 \(\left\{y\right\}\) 数量,令 \(k=\left\lfloor\frac{M-\sum x_i}{3}\right\rfloor\),即求出
\[\sum_{i=0}^k \dbinom{i+n-1}{n-1}
\]
用 ABC154F 中的公式可以得到上式即为 \(\dbinom{k+n}{n}\)。
枚举 \(x_1\),以及 \(x_2,\cdots,x_n\) 中 \(1\) 的个数,就可以 \(\mathcal O(1)\) 计算出方案数,总时间复杂度 \(\mathcal O(n)\)。