贪心、构造、DP、交互 合集(Part 2)

Problem A. CF704B Ant Man

题意:

\(n\) 个元素,第 \(i\) 个元素有五个参数 \(x_i,a_i,b_i,c_i,d_i\)

你需要求出一个 \(1 \sim n\) 的排列 \(p\),满足 \(p_1 = s, p_n = e\),同时最小化这个排列的权值。

一个排列的权值为 \(\sum_{i=1}^{n-1} f(p_i, p_{i+1})\),其中 \(f(i,j)\) 定义为:

  • \(i > j\),则 \(f(i,j) = x_i - x_j + c_i + b_j\)
  • \(i < j\),则 \(f(i,j) = x_j - x_i + d_i + a_j\)

\(2 \leq n \le 5 \times 10^3\)\(s \ne e\)\(1 \le x_1 < x_2 < \cdots < x_n \le 10^9\)\(1 \le a_i,b_i,c_i,d_i \le 10^9\)

解法:

这一类问题都可以描述如下:

你要求一个排列 \(p_1,p_2,\cdots,p_n\),最小 / 最大化 \(\sum \limits_{i=1}^{n-1} f(p_i,p_{i+1})\),其中 \(f(i,j)=\begin{cases} f(i)+g(j) && i<j\\h(i)+r(j) && i>j\end{cases}\)

考虑到 \(f\) 的值与参数关系有关,考虑钦定顺序进行连续段 DP,记 \(f_{i,j}\) 表示已经填入 \([1,i]\),目前形成了 \(j\) 个连续段的答案。转移都是容易的,不过细节是插入 \(s\)\(e\) 时有些转移是不合法的需要注意。

Submission Link.

posted @ 2024-11-17 19:31  HappyBobb  阅读(1)  评论(0编辑  收藏  举报