[arc223f] Zonal Score Maximization
直接做做不了,所以这个划分肯定有性质。
Hint 1
首先注意到,划分方案不会有长度 \(\geq 4\) 的段。因为可以把这样的段断成两段,权值会更大。
因此,每一段长度都是 \(2\) 或 \(3\)。
Hint 2
注意到,答案权值几乎可以取到 \(1\) 到 \(n\) 的和。
因为 \(P\) 是排列,并且每段长度 \(\geq 2\),所以每个数至多被计算一次。
- \(n\) 是偶数
将整个序列全都划分成 \(2\),就取到了 \(1\) 到 \(n\) 的和,这是答案上界。
因此 \(n\) 为偶数时,必然有 \(f(A) = \frac{n(n+1)}{2}\)。所以,\(n\) 为偶数的问题是平凡的。
- \(n\) 是奇数
发现最优的划分,一定只存在一个长度为 \(3\) 的段,且别的段长度都是 \(2\)。
此时的权值是 \(f(A) = \frac{n(n+1)}{2} - x\),其中 \(x\) 是长度为 \(3\) 的那段的中位数。
由于题目中,\(f(A) = X\) 已经给定,因此 \(x = \frac{n(n+1)}{2} - X\),我们只需要统计有多少种排列,满足最优的中位数为 \(x\)。
Hint 3
最优中位数 \(=x\) 不好算,但是 \(\geq x\) 好算。
设最优中位数 \(\geq x\) 的方案数为 \(g(x)\)。
\(g(x)\) 相当于,把 \(1 \sim x\) 的所有数填进去,设这些点是黑点,则不能存在某个 \(2i,2i+1,2i+2\) 中有超过 \(2\) 个黑点。
答案是 \(g(x)-g(x+1)\)。
Hint 4
考虑把不能同时为黑色的点对连边。
大概长这样:

并且,有一些点已经固定黑色,有一些点已经固定白色,还有一些自由染色。然后需要数大小为 \(x\) 的独立集个数。
可以尝试从左往右 \(dp\)。
先把第一个点单独考虑,后面的点两个两个地考虑。
设 \(f_{i,k,0/1}\) 表示考虑完了前 \(i\) 对点,选了 \(k\) 个点,最右边的点是黑还是白。
直接转移就可以做到 \(O(n^2)\)。
Hint 5
把上面的 \(f_{i,k,0/1}\) 看成关于 \(k\) 的多项式 \(F_0^{(i)}(x),F_1^{(i)}(x)\)。
分治 NTT 优化转移即可 \(O(n \log^2 n)\)。

浙公网安备 33010602011771号