#125. [NOIP2011-提高] 观光公交

[NOIP2011-提高] 观光公交

题目背景

感谢@Transhumanist 提供的一组Hack数据

题目描述

风景迷人的小城YY 市,拥有nn 个美丽的景点。由于慕名而来的游客越来越多,YY 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务。观光公交车在第 00 分钟出现在 11号景点,随后依次前往2,3,4,,n 2,3 ,4 ,…,n 号景点。从第 ii 号景点开到第i+1 i+1 号景点需要Di D_i 分钟。任意时刻,公交车只能往前开,或在景点处等待。

设共有mm 个游客,每位游客需要乘车11次从一个景点到达另一个景点,第ii 位游客在TiT_i 分钟来到景点 AiA_i ,希望乘车前往景点$B_i (A_i

假设乘客上下车不需要时间。一个乘客的旅行时间,等于他到达目的地的时刻减去他来到出发地的时刻。因为只有一辆观光车,有时候还要停下来等其他乘客,乘客们纷纷抱怨旅行时间太长了。于是聪明的司机ZZZZ给公交车安装了kk个氮气加速器,每使用一个加速器,可以使其中一个Di1 D_i-1 。对于同一个DiD_i 可以重复使用加速器,但是必须保证使用后Di0D_i \ge 0

那么ZZZZ该如何安排使用加速器,才能使所有乘客的旅行时间总和最小?

输入输出格式

输入格式:

11行是33个整数n,m,kn, m, k ,每两个整数之间用一个空格隔开。分别表示景点数、乘客数和氮气加速器个数。

22行是n1n-1个整数,每两个整数之间用一个空格隔开,第ii 个数表示从第ii 个景点开往第i+1i+1 个景点所需要的时间,即Di D_i

33 行至m+2m+2 行每行33 个整数 Ti,Ai,BiT_i, A_i, B_i,每两个整数之间用一个空格隔开。第i+2 i+2 行表示第ii 位乘客来到出发景点的时刻,出发的景点编号和到达的景点编号。

输出格式:

一个整数,表示最小的总旅行时间。

输入输出样例

输入样例#1:

3 3 2 1 4 0 1 3 1 1 2 5 2 3

输出样例#1:

10

说明

【输入输出样例说明】

D2D_2 使用22 个加速器,从22 号景点到 33 号景点时间变为 22 分钟。

公交车在第11 分钟从11 号景点出发,第22 分钟到达22 号景点,第55 分钟从22 号景点出发,第77 分钟到达 33 号景点。

11个旅客旅行时间 70=77-0=7 分钟。

22个旅客旅行时间 21=12-1=1 分钟。

33个旅客旅行时间 75=27-5 = 2 分钟。

总时间7+1+2=10 7+1+2 = 10分钟。

【数据范围】

对于10%10\% 的数据,k=0k=0

对于20%20\% 的数据,k=1k=1

对于40%40\% 的数据,$2 ≤ n ≤ 50,1 ≤ m ≤ 1,000,0 ≤ k ≤ 20,0 ≤ D_i ≤ 10,0 ≤ T_i ≤ 500$;

对于60%60\% 的数据,$1 ≤ n ≤ 100,1 ≤ m ≤ 1,000,0 ≤ k ≤ 100,0 ≤ D_i ≤ 100,0 ≤T_i≤ 10,000$;

对于100%100\%的数据,$1 ≤ n ≤ 1,000,1 ≤ m ≤ 10,000 ,0 ≤ k ≤ 100,000,0 ≤ D_i ≤ 100 0 ≤T_i ≤ 100,000$。

noip2011提高组day2第3题