luogu#P4360. [CEOI2004] 锯木厂选址

    ID: 8387 远端评测题 200ms 63MiB 尝试: 11 已通过: 1 难度: 6 上传者: 标签>模拟动态规划dp单调队列模拟退火斜率优化2004

[CEOI2004] 锯木厂选址

题目描述

从山顶上到山底下沿着一条直线种植了 nn 棵老树。当地的政府决定把他们砍下来。为了不浪费任何一棵木材,树被砍倒后要运送到锯木厂。

木材只能朝山下运。山脚下有一个锯木厂。另外两个锯木厂将新修建在山路上。你必须决定在哪里修建这两个锯木厂,使得运输的费用总和最小。假定运输每公斤木材每米需要一分钱。

你的任务是编写一个程序,从输入文件中读入树的个数和他们的重量与位置,计算最小运输费用。

输入格式

输入的第一行为一个正整数 nn ——树的个数 (2n20000)(2\leq n\leq 20000)。树从山顶到山脚按照 1,2,,n1,2,\dots,n 标号。

接下来 nn 行,每行有两个正整数(用空格分开)。

i+1i+1 行含有:wiw_i ——第 ii 棵树的重量(公斤为单位)和 did_i——第 ii 棵树和第 i+1i+1 棵树之间的距离, 1wi10000,0di100001\leq w_i\leq 10000,0\leq d_i\leq 10000

最后一颗树的 dnd_n,表示第 nn 棵树到山脚的锯木厂的距离。保证所有树运到山脚的锯木厂所需要的费用小于 2×1092\times 10^9 分。

输出格式

输出最小的运输费用。

9 
1 2 
2 1 
3 3 
1 1 
3 2 
1 6 
2 1 
1 2 
1 1

26

提示

样例图示,黑点为锯木厂

本题共有 1313 个测试点,每个测试点的数据范围如下

测试点 151\sim 5n200n\leq 200

测试点 676\sim7n1000n\leq 1000

测试点 7137\sim132n200002\leq n\leq 20000