ARC067 简要题解

ARC067 简要题解

A

对于每一个数质因数分解即可

B

发现不会走回头路, 所以从左往右走是最优的

看每一段是一步步挪更优还是瞬移更优

C

很容易想到 \(f[i][j]\) 代表已经分了组内人数 \(\leq i\) 的组, 共分了 \(j\) 个人的方案数

然后不好转移, 所以设 \(g[i * j][j]\) 为共有 \(i * j\) 个不同的人, 要分为人数相等的 \(j\) 组的方案数

\[g[i * j][j] = \frac{g[i * (j - 1)][j-1]*\binom{ij}{i}}{j}\\ \]

至于为什么要除掉一个 \(j\) 是因为组之间没有区别

\(f\) 的转移挺简单的就不用说了

D

考虑从左往右扫统计答案

设已经扫了前 \(1 - i\) 个店, 当前右端点在 \(i\) , 左端点为 \(j\) 的最优答案是 \(ans[j]\)

考虑对于每一张券维护

发现每次就是加进来一个最大的然后更新前面某一段没有他优的点

所以可以用单调栈维护

发现每一次单调栈加入弹出都是对一段区间的值加减

差分维护即可

posted @ 2020-09-17 19:53  ztlztl  阅读(157)  评论(0编辑  收藏  举报