CF2062F Traveling Salescat

题目大意:

\(n\) 个点,每个点有两个值 \(a_{i},b_{i}\),你要依次经过 \(k\) 个不同的未确定的城市,求 \(\sum_{i = 1}^{k - 1} \max(a_{p_{i}} + b_{p_{i + 1}}, a_{p_{i + 1}} + b_{p_{i}})\)
\(n,k \le 3000\)

解题思路:

考虑这个不同的和这个条件过于复杂了,考虑优化掉这个条件。

\[\max(a_{x} + b_{y}, a_{y} + b_{x}) = \max(a_{x} - b_{x}, a_{y} - b_{y}) + b_{x} + b_{y} \]

\(c_{i} = a_{i} - b_{i}\),那么我们对于一个序列,除去头和尾的贡献排序后很好算。
\(dp_{i,j,0/1/2}\) 表示排序后的前 \(i\) 个,选 \(j\) 个,钦定了几个头尾。
\(O(n^2)\)

posted @ 2026-03-02 20:20  positive_deviation  阅读(1)  评论(0)    收藏  举报