#158. 任务安排1

任务安排1

有 N 个任务排成一个序列在一台机器上等待执行,它们的顺序不得改变。

机器会把这 N 个任务分成若干批,每一批包含连续的若干个任务。

从时刻0开始,任务被分批加工,执行第 i 个任务所需的时间是 T_iT\_i

另外,在每批任务开始前,机器需要 S 的启动时间,故执行一批任务所需的时间是启动时间 S 加上每个任务所需时间之和。

一个任务执行后,将在机器中稍作等待,直至该批任务全部执行完毕。

也就是说,同一批任务将在同一时刻完成。

每个任务的费用是它的完成时刻乘以一个费用系数 C_iC\_i

请为机器规划一个分组方案,使得总费用最小。

输入格式

第一行包含整数 N。

第二行包含整数 S。

接下来N行每行有一对整数,分别为 T_iT\_iC_iC\_i,表示第 i 个任务单独完成所需的时间 T_iT\_i 及其费用系数 C_iC\_i

输出格式

输出一个整数,表示最小总费用。

数据范围

1N50001 \le N \le 5000,
0S500 \le S \le 50,
1T_i,C_i1001 \le T\_i,C\_i \le 100

输入样例:

5
1
1 3
3 2
4 3
2 3
1 4

输出样例:

153

来源

  • 《算法竞赛进阶指南》
  • acwing 可能含有视频讲解