ABC276 F~G

F:

简单题,考虑增量模拟。

考虑选 \(i\) 带来的新的贡献。

如果 \(A_j\le A_i\),那么贡献是 \(A_i\)

否则贡献是 \(A_j\)

用两个树状数组维护即可。

Code

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)\)

Code

posted @ 2022-11-11 09:53  Kobe303  阅读(30)  评论(0编辑  收藏  举报