CF2062F - Traveling Salescat
首先化简,\(\max(a_i+b_j,b_i+a_j)=max(a_i-b_i,a_j-b_j)+b_i+b_j\)。
记 \(c_i=a_i-b_i\),将所有点按照 \(c_i\) 升序排序。
考虑最小代价,一定是中间的点是 \(c_i\) 升序,首尾要满足 \(c_s\le c_t\)。
设计 dp,记 $f_{i,j,0,1,2} $ 为在前 \(i\) 个点中选了 \(j\) 个点,没选起点终点或只选了起点或选了起点和终点。
\(f_{i+1,j,k}=f_{i,j,k}\)
\(f_{i+1,j+1,0}=\min(f_{i+1,j+1,0},f_{i,j,0}+2\times b_{i+1}+c_{i+1}\times[j\neq 0])\)
\(f_{i+1,j+1,1}=\min(f_{i+1,j+1,1},f_{i,j,1}+2\times b_{i+1}+c_{i+1})\)
\(f_{i+1,j+1,2}=\min(f_{i+1,j+1,2},f_{i,j,2}+2\times b_{i+1}+c_{i+1})\)
\(f_{i+1,j+1,1}=\min(f_{i+1,j+1,1},f_{i,j,0}+b_{i+1}+c_{i+1}\times[j\neq 0])\)
\(f_{i+1,j+1,2}=\min(f_{i+1,j+1,2},f_{i,j,1}+b_{i+1})\)
\(ans_{j+1}=\min(ans_{j+1},\min(f_{i,j,2}+2\times b_{i+1}+2\times c_{i+1},f_{i,j,1}+b_{i+1}+c_{i+1}))\)