秘密花园

测试数据来自 system/1138

作业已超过截止时间,您无法递交本题目。

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


【问题描述】

  一天小H狗场的 \(N\) 只哈斯奇狗闯进了他的秘密花园。已知将第 \(i\)只哈斯奇赶回的狗场需要 \(t_i\) 分钟,而这只哈斯奇在花园每多待 \(1\) 分钟,就会损坏 \(d_i\) 朵玫瑰花,小H每次只能赶一只哈斯奇回狗场,然后返回才能赶下一只,因此他赶回第 \(i\) 只哈斯奇需要花 \(2 * t_i\) 分钟的时间。

  现在请你写一个程序,帮助小H确定按怎样的顺序赶会这些狗才能让他的花园损失最小。

【输入格式】

  第 \(1\) 行:包含一个整数 \(N\) 。
  第 \(2..N+1\) 行:每行包含两个用一个空格分开的整数 \(t_i\) 和 \(d_i\)。

【输出格式】

  输出包含一个整数,表示花园损失的最小值。

【输入输出样例1】

 Input

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

 Output

86

【输入输出样例解释】

  小H按照 \(6, 2, 3, 4, 1, 5\) 的顺序赶回哈斯奇,损坏花朵数量计算如下:
  哈斯奇 \(6\) 最先赶回,她没有时间损坏花朵,因此哈斯奇 \(6\) 损坏花朵数量是 \(0\);
  哈斯奇 \(2\) 在花园中待的时间是小H赶回哈斯奇 \(6\) 并回到花园的时间,因此她损坏花朵的数量为 \(2*5=10\) 朵;
  哈斯奇 \(3\) 在花园中待的时间是 \(2+4=6\) 分钟,因此损坏花朵的数量为 \(3*6=18\) 朵;
  按同样的道理可以计算哈斯奇 \(4\) 损坏花朵的数量分别为:\(2*10=20\);哈斯奇 \(1\) 损坏花朵的数量分别为:\(1*16=16\);哈斯奇 \(5\) 损坏花朵的数量分别为:\(1 * 22=22\)。
  所以最后损失的最小值为 \(0 + 10 + 18 + 20 + 16 + 22 = 86\)。

【数据限制】

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

【来源】

  Mr.he

贪心算法练习题(二)

未认领
状态
已结束
题目
10
开始时间
2024-01-19 00:00
截止时间
2024-03-01 23:59
可延期
24.0 小时