锯木厂选址(CEOI2004)

这篇博客介绍了一个关于锯木厂选址的问题,要求在给定的树木位置上选择两个锯木厂的位置,以最小化运输成本。问题涉及到一条直线上的n棵树,运输费用按重量和距离计算。解决方案依赖于斜率优化技术,通过推导式子来求解最小运输费用。样例输入和输出展示了具体的操作过程。
摘要由CSDN通过智能技术生成

Description

  从山顶上到山底下沿着一条直线种植了n棵老树。当地的政府决定把他们砍下来。为了不浪费任何一棵木材,树被砍倒后要运送到锯木厂。
  木材只能按照一个方向运输:朝山下运。山脚下有一个锯木厂。另外两个锯木厂将新修建在山路上。你必须决定在哪里修建两个锯木厂,使得传输的费用总和最小。假定运输每公斤木材每米需要一分钱。
  你的任务是编写一个程序,从输入文件中读入树的个数和他们的重量与位置,计算最小运输费用。

Input

  输入的第一行为一个正整数n——树的个数(2≤n≤20000)。树从山顶到山脚按照1,2……n标号。
  接下来n行,每行有两个正整数(用空格分开)。
  第i+1行含有:wi——第i棵树的重量(公斤为单位)和 di——第i棵树和第i+1棵树之间的距离,1≤wi≤10000,0≤di≤10000。最后一个数dn,表示第n棵树到山脚的锯木厂的距离。保证所有树运到山脚的锯木厂所需要的费用小于2000000000分。

Output

  输出只有一行一个数:最小的运输费用。

Sample Input

9

1 2

2 1

3 3

1 1

3 2

1 6

2 1

1 2

1 1

Sample Output

26

水题,知道斜率优化怎么操作之后,只剩推式子的事情了。

#include<bits/stdc++.h>
using namespace std;
con
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值