C

注意:长度为 的值域为 的单调递增序列个数为

你说得对,但是我用了前缀和优化 dp,然后发现等价的。

D

注意: 一定是

然后就是简单的 bfs 了。

E

注意到答案区间连续,那么只需要构造出 maxn, minn。

发现值域很小,而贪心就是把正数和负数分别放在前面,所以模拟即可。

F

长度不同的长度和为 ,则长度一共可能有最多 种,即从 开始。

那么每种长度存一个 unordered_map,然后按 排序,查找即可。复杂度是根号乘 n。

听说这玩意常数大但是 ?也就是除了 cf 以外都可以尝试替换 map。

另一种就是 就 kmp,单次 ,乘上可能次数

否则把这些 全部存下来,还是像上面一样查找。

由于空间 32MB,所以自己试