#include<cstdio>
#include<cstdlib>
#include<cstring>
#define max(a,b) (a > b ? a : b)
#define maxn 1000
#define maxm 10000
int n,m,k,ans=;
int d[maxn+],g[maxn+],sum[maxn+],las[maxn+],get[maxn+];
int t[maxm+],a[maxm+],b[maxm+]; inline void read()
{
scanf("%d%d%d",&n,&m,&k);//分别表示景点数、乘客数和氮气加速器个数。
int i;
for (i=; i<n; i++)
scanf("%d",&d[i]);//表示从第i 个景点开往第i+1 个景点所需要的时间,即Di。
for (i=; i<=m; i++)
{
scanf("%d%d%d",&t[i],&a[i],&b[i]);//第i 位乘客来到出发景点的时刻,出发的景点编号和到达的景点编号。
sum[b[i]]++; //每个景点的人数
las[a[i]]=max(las[a[i]],t[i]); //Hash 储存出发的时间 max( 到达景点最晚的时间,第i位乘客到达的时间 )
}
} inline void work()
{
int i,maxs=,l,r;
for (i=; i<=n; i++)
if (sum[g[i]]-sum[i]>maxs&&d[i]>)//sum[第i站使用氮气影响到第几站]-sum[第i站] 即第i站使用氮气影响到最后一站的人数减去第i站使用氮气的人数
{
maxs=sum[g[i]]-sum[i]; //maxs= 第i站使用氮气影响到最后一站的人数减去第i站使用氮气的人数
l=i; //起点
r=g[i]; //终点
}
if (r>n-)
r=n-;
d[l]--;
ans-=maxs; for (i=l; i<=r; i++)
get[i]=max(get[i-],las[i-])+d[i-];
for (i=r; i>=l; i--)
if (get[i+]<=las[i+]) g[i]=i+;
else g[i]=g[i+];
} inline void print()
{
int i;
for(i=;i<=n;i++)
get[i]=max(get[i-],las[i-]) +d[i-];// max(到达第i站的时间,最后一位乘客到达的时间)+路程所需的时间
g[n-]=g[n]=n;// g数组储存在第i战使用氮气 将影响到第几站
for (i=n-; i>; i--) //
if (get[i+]<=las[i+])//到达的时间小于最后一位乘客到达的时间,则不影响下一站以后的时间
g[i]=i+; //只影响到下一站
else
g[i]=g[i+]; // 从后向前循环 g[i]=下一站所影响到第几站
for (i=; i<=n; i++)
sum[i]+=sum[i-];//处理前缀和 sum表示每个景点的人数
for (i=; i<=m; i++)//第i个人
ans+=get[b[i]]-t[i];//(公交到达第b[i]站时间--第i个人到站的时间) 1
for (i=; i<k; i++)
work(); printf("%d\n",ans);
} int main()
{
read();
print();
return ;
}

codevs 1139 观光公交的更多相关文章

  1. vijos1741 观光公交 (贪心)

    https://www.vijos.org/p/1741 P1741观光公交 请登录后递交 标签:NOIP提高组2011[显示标签]   描述 风景迷人的小城Y市,拥有n个美丽的景点.由于慕名而来的游 ...

  2. NOIP2011 观光公交

    3.观光公交 (bus.cpp/c/pas) 风景迷人的小城 Y 市,拥有 n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特 意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 ...

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

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

  4. NOIP观光公交

    #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #inc ...

  5. noip 2011观光公交

    P1315 观光公交 95通过 244提交 题目提供者该用户不存在 标签贪心递推2011NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录   题目描述 风景迷人的小城Y 市,拥有n 个美 ...

  6. 观光公交 2011年NOIP全国联赛提高组(贪心,递推)

    观光公交 2011年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold       题目描述 Description 风景迷人的小城 Y 市 ...

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

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

  8. luoguP1315 观光公交 题解(NOIP2011)(贪心)

    P1315 观光公交 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include<cm ...

  9. 洛谷P1315 [NOIP2011提高组Day2T3] 观光公交

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

随机推荐

  1. 【转】java中float与byte[]的互转 -- 不错

    原文网址:http://tjmljw.iteye.com/blog/1767716 起因:想把一个float[]转换成内存数据,查了一下,下面两个方法可以将float转成byte[]. 方法一 imp ...

  2. HNOI 2016 省队集训日记

    第一天 DeepDarkFantasy 从东京出发,不久便到一处驿站,写道:日暮里.  ——鲁迅<藤野先生> 定义一个置换的平方为对1~n的序列做两次该置换得到的序列.已知一个置换的平方, ...

  3. margin:-75px的理解及妙用——纯CSS制作水平/垂直都居中短边为50px/长边为150px的红色十字架

    有这么一个题目: 使用重构的方式制作出一个如下图的水平.垂直都居中短边为50px,长边为150px的红色十字架. 要求只使用2个div完成 答案: <!DOCTYPE html PUBLIC & ...

  4. IGeometry 中取指定的点

    private static IGeometryCollection MakeMultiPoint(IGeometry geometry,int pointcount) {          IGeo ...

  5. 数据结构——foodfill 八连块问题

    Description Due to recent rains, water has pooled in various places in Farmer John's field, which is ...

  6. JavaScript中的声明提升

    JavaScript中变量或者函数的声明会被提升(赋值语句不会被提升)到当前函数主体的顶部,不管这个声明是否出现在不可到达的地方. var test = 1; function f() { if(!t ...

  7. 编写Lex和Yacc

    大学课程设计中,有一次是编写Lex(词法分析器的生成器)和Yacc(语法分析器的生成器),编写这类工具软件不是一件容易的事情.这篇文章记录了当时编程时候的主要思想,主要还是编译原理的思想. 准备 Le ...

  8. Jenkins 十二: 集成 selenium 测试

    我的selenium采用的是python版本. 其实 selenium java版本也类似. 1. 在jenkins里面新建selenium 测试项目. 源码管理采用 “Subversion”,输入 ...

  9. javaweb开发过程中的地址写法

    凡是要表示web资源的地址,比如浏览器地址栏中,都是 /凡是要表示硬盘地址, 都是 \  public class ServletDemo1 extends HttpServlet { //实际开发过 ...

  10. 424. Longest Repeating Character Replacement

    以最左边为开始,往右遍历,不一样的个数大于K的时候停止,回到第一个不一样的地方,以它为开始,继续.. 用QUEUE记录每次不一样的INDEX,以便下一个遍历开始, 从左往右,从右往左各来一次..加上各 ...