题目描述 Description
风景迷人的小城 Y 市,拥有n 个美丽的景点。由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务。观光公交车在第0 分钟出现在1号景点,随后依次前往2、3、4……n 号景点。从第i 号景点开到第i+1 号景点需要Di 分钟。任意时刻,公交车只能往前开,或在景点处等待。
设共有 m 个游客,每位游客需要乘车1 次从一个景点到达另一个景点,第i 位游客在Ti 分钟来到景点Ai,希望乘车前往景点Bi(Bi>Ai)。为了使所有乘客都能顺利到达目的地,公交车在每站都必须等待需要从该景点出发的所有乘客都上车后才能出发开往下一景点。
假设乘客上下车不需要时间。
一个乘客的旅行时间,等于他到达目的地的时刻减去他来到出发地的时刻。因为只有一辆观光车,有时候还要停下来等其他乘客,乘客们纷纷抱怨旅行时间太长了。于是聪明的司机ZZ 给公交车安装了k 个氮气加速器,每使用一个加速器,可以使其中一个Di 减1。对于同一个Di 可以重复使用加速器,但是必须保证使用后Di 大于等于0。

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

输入描述 Input Description
第 1 行是3 个整数n, m, k,每两个整数之间用一个空格隔开。分别表示景点数、乘客数和氮气加速器个数。
第 2 行是n-1 个整数,每两个整数之间用一个空格隔开,第i 个数表示从第i 个景点开往第i+1 个景点所需要的时间,即Di。
第 3 行至m+2 行每行3 个整数Ti, Ai, Bi,每两个整数之间用一个空格隔开。第i+2 行表示第i 位乘客来到出发景点的时刻,出发的景点编号和到达的景点编号。

输出描述 Output Description
共一行,包含一个整数,表示最小的总旅行时间。

样例输入 Sample Input
3 3 2
1 4
0 1 3
1 1 2
5 2 3

样例输出 Sample Output
10

数据范围及提示 Data Size & Hint
对 D2 使用2 个加速器,从2 号景点到3 号景点时间变为2 分钟。
公交车在第 1 分钟从1 号景点出发,第2 分钟到达2 号景点,第5 分钟从2 号景点出发,第7 分钟到达3 号景点。
第 1 个旅客旅行时间 7-0 = 7 分钟。
第 2 个旅客旅行时间 2-1 = 1 分钟。
第 3 个旅客旅行时间 7-5 = 2 分钟。
总时间 7+1+2 = 10 分钟。

数据范围
对于 10%的数据,k=0;
对于 20%的数据,k=1;
对于 40%的数据,2 ≤ n ≤ 50,1 ≤ m≤ 1,000,0 ≤ k ≤ 20,0 ≤ Di ≤ 10,0 ≤ Ti ≤ 500;
对于 60%的数据,1 ≤ n ≤ 100,1 ≤ m≤ 1,000,0 ≤ k ≤ 100,0 ≤ Di ≤ 100,0 ≤ Ti ≤ 10,000;
对于 100%的数据,1 ≤ n ≤ 1,000,1 ≤ m ≤ 10,000,0 ≤ k ≤ 100,000,0 ≤ Di ≤ 100,0 ≤ Ti ≤ 100,000。

program mys;
var i,j,m,n,k,l,ans,max1,xx,tt:longint;
st,start,c,s,d:array[0..1000] of longint;
a,b,t:array[0..1000000] of longint;
function max(a,b:longint):longint;
begin
if a>b then exit(a)
else exit(b);
end;begin
readln(n,m,k);
for i:=1 to n-1 do
read(d[i]);
readln;
for i:=1 to m do
begin
readln(t[i],a[i],b[i]);
if start[a[i]]<t[i] then start[a[i]]:=t[i];
inc(c[b[i]]);
end;
for xx:=1 to k do
begin
fillchar(st,sizeof(st),0);
fillchar(s,sizeof(s),0);
for i:=1 to n-1 do
st[i+1]:=max(st[i],start[i])+d[i];
i:=1;
max1:=0;
while i<=n-1 do
begin
if d[i]>0 then
begin
j:=i;
s[j]:=c[i+1];
while st[i+1]>start[i+1] do
begin
inc(i);
s[j]:=s[j]+c[i+1];
end;
if s[j]>max1 then
begin
tt:=j;
max1:=s[j];
end;
end;
inc(i);
end;
if max1=0 then break;
if d[tt]>0 then dec(d[tt]);
end;
ans:=0;
for i:=1 to n-1 do
st[i+1]:=max(st[i],start[i])+d[i];
for i:=1 to m do
ans:=ans+st[b[i]]-t[i];
writeln(ans);
end.

WikiOI 1139 观光公交 (NOIP2011) 贪心相关推荐

  1. Luogu 1315 【NOIP2011】观光公交 (贪心)

    Luogu 1315 [NOIP2011]观光公交 (贪心) Description 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供 ...

  2. [luogu]P1315 观光公交[贪心]

    [luogu]P1315 [NOIP2011]观光公交 --!x^n+y^n=z^n 题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车, ...

  3. 【洛古 P1315】 [NOIP2011 提高组] 观光公交

    [NOIP2011 提高组] 观光公交 题目背景 感谢 @Transhumanist 提供的一组 Hack 数据 题目描述 风景迷人的小城 Y 市,拥有 n n n 个美丽的景点.由于慕名而来的游客越 ...

  4. 【做题记录】[NOIP2011 提高组] 观光公交

    P1315 [NOIP2011 提高组] 观光公交 我们想在 \(k\) 次加速每一次都取当前最优的方案加速. 考虑怎样计算对于每一条边如果在当前情况下使用加速器能够使答案减少的大小. 如果当前到达某 ...

  5. 观光公交削弱_削弱Web开发人员和Internet的7大障碍

    观光公交削弱 As a web developer I periodically take a step back from the text editor and look at the lands ...

  6. 观光公交削弱_您的工作可能如何削弱您的技术技能

    观光公交削弱 对简单的入门和故障安全环境的渴望使开发人员感到自我破坏. 现代软件应用程序是巨大的. 甚至小型公司产品也可以由抽象的层次组成. 根据与您最紧密合作的那一层,您可能会错过很多东西. Mar ...

  7. 【NOIP2011 Day 2】观光公交

    [问题描述] 小城Y市,拥有n个景点.由于慕名而来的游客越来越多,Y市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第0分钟出现在1号景点,随后依次前往2.3.4--n号景点.从第 ...

  8. NOIP2011 观光公交

    话说,我终于AC了这个题 这是一个贪心,说实话开始做的时候......完全没看出来QAQ.. 可能有人说这是个dp,但这真不是(dalao请无视) 这真的只是个贪心.... 首先对于每个点当然是能走就 ...

  9. 洛谷P1315 观光公交

    SB贪心......暴露了我代码能力巨弱的本质. 题面 解:首先我们应该想到DP(但是我想到了贪心......) 然后分析题目本质,每个点有个限制,最早开走时间不得早于最晚上车时间. 然后我们就可以把 ...

  10. jzxx2852观光公交

    题目描述 风景迷人的小城 Y 市,拥有 n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1 号景点,随后依次前 ...

最新文章

  1. c语言sprt的程序怎么用,sqrt函数在c语言中怎么用?
  2. canvas 移动光速特效-
  3. SpringBoot 嵌入式Servlet容器
  4. 黑马程序员-JavaSE核心知识-03第一个Java程序
  5. thinkphp单入口和多入口的访问方法
  6. Net Framework类库中提供的线程同步设施包括:
  7. AI论文解读丨融合视觉、语义、关系多模态信息的文档版面分析架构VSR
  8. python canny函数_python库skimage 应用canny边缘探测算法
  9. 霸气!Power 支持混合云、多云,性能完胜 x86!
  10. python入门爬虫案例_[Python入门学习]-爬虫项目案例讲解
  11. rhel6中dhcp服务器配置文件,如何在CentOS/RHEL 7/6/5配置DHCP服务器
  12. Visio连接线连接图形固定位置,不能随意位置连接,提示粘附到形状
  13. 3轴陀螺仪传感器和3轴加速度传感器的工作原理
  14. 快来领取哔哩哔哩412张超清壁纸!
  15. 什么叫前复权。什么叫后复权。什么是不复权
  16. 趣味ACM题——圣骑士的斩杀
  17. STM32+ESP8266获取时间和天气
  18. 养蚕日记软件测试,科学观察养蚕日记(精选3篇)
  19. windows server2019远程连接win7旗舰版服务器出现内部错误
  20. pytorch第06天 图片分类器

热门文章

  1. math_高阶导数求导法则和公式
  2. 2、异常值(outliers)检测:业务法、Z-score、3σ准则、箱线图
  3. python web 数据可视化框架_利用django框架,手把手教你搭建数据可视化系统(一)...
  4. SylixOS的来龙去脉
  5. 不多不少,大学里必做的五件事(从我的大一说起)
  6. 如何维持手机电池寿命_手机电池寿命是多久? 如何延长手机电池寿命?
  7. python中iter_深入了解Python iter() 方法的用法
  8. 稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB
  9. matlab linux x11 display,Xming安裝 + X11-Forwarding使用
  10. 今日恐慌与贪婪指数为24 恐慌程度有所缓解