题解:CF1603E A Perfect Problem

posted on 2025-05-04 08:33:01 | under | source

题意:求有多少个值域在 \([1,n+1]\) 长度为 \(n\) 的序列 \(a\),满足 \(a\) 的任意子序列 \(b\) 都有 \(\max b\times \min b\ge \sum b\)\(n\le 200\)

考虑判定。先排序,然后发现子序列填充为区间总和变大,限制更严;填充为前缀总和变大、最小值变小,限制更严。

\([1,n+1]\) 的限制怪怪的,从值域下手,分讨 \(a_x\)\(x\) 的关系:

  • \(a_x<x\)\(a_1a_x<xa_1\le \sum\limits_{j\in[1,x]} a_j\),非法。
  • \(a_x=x\)\(a_1a_x=xa_1\le \sum\limits_{j\in[1,x]}a_j\),合法当且仅当 \(x\) 前缀全是 \(x\)
  • \(a_x>x\):不妨从 \(a_n=n+1\) 开始,限制为 \(a_1\ge \sum (a_i-a_1)\)。对于其它的 \(x<n\),当 \(a_x=x+1\) 时限制最严,但是还是没有刚才 \(a_n\) 的限制严,所以不用管。

那么枚举一个 \(a_x=x\)\(\forall y>x,a_y>y\),然后就能直接背包了。总复杂度由于调和级数是 \(O(n^4\log n)\)

然后考虑已知 \(a_1\) 最小化 \(\sum a\),必然是 \(a_1\)\(a_1\) 然后接着 \(a_1+1,a_1+2\dots\)。解个不等式发现 \(a_1<n-2\sqrt n\) 非法。

所以复杂度 \(O(n^{3.5}\log n)\)

posted @ 2026-01-15 08:16  Zwi  阅读(1)  评论(0)    收藏  举报