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)\)。

浙公网安备 33010602011771号