/ Vijos / 题库 /

机器检修

机器检修

时间限制:1秒  内存限制:256M


【问题描述】

  工厂的N台机器需要检修。已知将第i台机器检修时间需要ti 分钟,而这台机器每停止工作一分钟,就会少加工ci件产品。检修工每次只能检修一台机器,并且检修完一台后才能去检修另一台,中途不能停止。

  检修工作一旦开始,所有未检修的机器都必须停止工作,但某台机器一旦检修完,就可以立即开机加工产品。现在需要写一个程序,帮助工厂确定一个机器检修的顺序,使得因停机而少加工产品的数量达到最小,输出这个最小值

【输入格式】

  输入的第一行包含一个整数 \(N\) 。接下来的 \(N\) 行,每行包含两个用一个空格分开的整数 t_i\( 和 \)c_i$,它们的意义如题目描述。

【输出格式】

  输出一个整数,表示少生产产品的最小值。

【输入输出样例】

 Input

6
6 1
4 5
4 3
6 2
8 1
2 6

 Output

156

【输入输出样例解释】

  按输入顺序将机器顺次编号为1,2,3,4,5,6,如果按照编号 \(6, 2, 3, 4, 1, 5\) 的顺序检修机器,则少生产的产品数量计算如下:
  第6台机器最先检修,因此它少加工 6*2=12 件产品;
  第2台机器等待检修的时间为2分钟,因此它少加工5*(2+4)=30件产品;
  第3台机器等待检修的时间为6分钟,因此它少加工3*(6+4)=30件产品;
  第4台机器等待检修的时间为10分钟,因此它少加工2*(10+6)=32件产品;
  第1台机器等待检修的时间为16分钟,因此它少加工1*(16+6)=22件产品;
  第5台机器等待检修的时间为22分钟,因此它少加工1*(22+8)=30件产品;
  所以最后少加工产品的最小值为 \(12 + 30 + 30 + 32 + 22 + 30 = 156\)。

【数据限制】

  \(2 <= N <= 100,000\)
  \(1 <= d_i <= 100\)
  \(1 <= t_i <= 20,000\)

【来源】

  Mr.he

信息

ID
3120
难度
9
分类
贪心 点击显示
标签
递交数
1
已通过
1
通过率
100%
被复制
3
上传者