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]*inom{ij}{i}}{j}\ ]

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

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

D

考虑从左往右扫统计答案

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

考虑对于每一张券维护

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

所以可以用单调栈维护

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

差分维护即可

原文地址:https://www.cnblogs.com/ztlztl/p/13687222.html