最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

信息学奥赛题库- 仓库建设

C++ 少儿编程 1231浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

【题目描述】

原题来自:ZJOI 2007

L 公司在山上有一些工厂。由于这座山处于高原内陆地区(干燥少雨),L 公司一般把产品直接堆放在露天,以节省费用。突然有一天,L 公司的总裁 L 先生接到气象部门的电话,被告知三天之后将有一场暴雨,于是 L 先生决定紧急在某些工厂建立一些仓库以免产品被淋坏。

L 公司在山上有 $N$ 个工厂。如图所示,工厂 $1$ 在山顶,工厂 $N$ 在山脚。

由于地形的不同,在不同工厂建立仓库的费用可能不同。工厂 $i$ 目前已有成品 $P_i$ 件,在该厂建立仓库的费用为 $C_i$ 。对于没有建立仓库的工厂,其产品应被运往其他的仓库进行储藏,而由于 L 公司产品的对外销售处设置在山脚的工厂 $N$,故产品只能往山下运(即只能运往编号更大的工厂的仓库),当然运送产品也是需要费用的,假设一件产品运送 $1$ 个单位距离的费用是 $1$。假设建立的仓库容量都都是足够大的,可以容下所有的产品。

已知:

1、工厂 $i$ 距离工厂 $1$ 的距离 $X_i$(其中 $X_1=0$);

2、工厂 $i$ 目前已有成品数量 $P_i$ ;

3、在工厂 $i$ 建立仓库的费用 $C_i$ 。

请你帮助 L 公司寻找一个仓库建设的方案,使得总的费用(建造费用+运输费用)最小。

【输入】

第一行包含一个整数 $N$,表示工厂的个数。

接下来 $N$ 行,每行包含三个整数 $X_i,P_i,C_i$ ,意义如题中所述。

【输出】

仅包含一个整数,为可以找到最优方案的费用。

【输入样例】

3
0 5 10
5 3 100
9 6 10

【输出样例】

32

【提示】

样例说明

在工厂 $1$ 和工厂 $3$ 建立仓库,建立费用为 $10+10=20$,运输费用为 $(9−5)×3=12$,总费用 $32$。如果仅在工厂 $3$ 建立仓库,建立费用为 $10$,运输费用为 $(9−0)×5 +(9−5)×3 =57$,总费用 $67$,不如前者优。

数据范围与提示:

对于全部数据,$N≤10^6$ ,保证所有的 $X_i,P_i, C_i$ 均在 $int$ 范围以内,保证中间计算结果不超过 $long;long$ 范围。

您必须 登录 才能发表评论!