线扫高级CP

问题描述 投票:0回答:0

一共有N个扇区,第i个扇区表示为[-Li,Ri]。 Li和Ri都是正整数。因此,所有扇区都包含 0。 通过并行移动扇区,除了扇区的终点之外,两个不同的扇区不应相互重叠。如果扇区 [-l,r] 移动到 [-l-d,r-d] 或 [-l+d,r+d],则将花费 d。 您需要编写一个程序,通过最小化总成本来移动扇区。

[输入]

第一行包含 t 个测试用例。 每个测试用例的第一行包含整数 N (1<= N <= 5000) on the ith line of following N lines, two space-separated integers Li and Ri (1 <= Li,Ri <= 10^9) are given

[输出]

移动两个不同扇区而不使它们重叠所需的总成本的最小总和。


我想通过以下方式解决它:

  1. 按扇区长度排序
  2. 使用 DP

但无法进一步进行,需要帮助使 DP 正式化。 谢谢!!

vector c++17 c++14 dynamic-programming
© www.soinside.com 2019 - 2024. All rights reserved.