#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. Android Wear开发 - 数据通讯 - 第四节 : 数据封装(解决不能序列化问题)

    一. 前言 背景 一开始笔者在研究数据发送与接收的时候,看到Wear数据类DataMap除了可以put基本类型外,还有个fromBundle方法来构建一个DataMap对象.所以一口气的将原本功能上的 ...

  2. Java Random

    第一种情况 Random rand = new Random(47); for(int i=0;i<10;i++) System.out.println(rand.nextInt(100)); ...

  3. latch介绍

    latch是一种锁,用来实现对Oracle所有共享数据结构的串行化访问.共享池就是这样一个例子, 这是系统全局区中一个庞大的共享数据结构,Oracle正是在这里存储已解析,已编译的SQL. 修改这个共 ...

  4. sudo and su

    sudo bash : change the current user into root su u1: change the current user into u1 useradd: add ne ...

  5. 【Angular】排序

    Correct way to integrate Jquery plugins in Angular.js gaurav123337/AngularOtherJqueryPluginDemo 超强的拖 ...

  6. Linux企业级开发技术(4)——epoll企业级开发之epoll例程

    为了使大家更加深入了解epoll模型在企业应用中的使用,下面给出一段基于epoll的服务器代码,并在代码中添加了详细注释: #include <deque> #include <ma ...

  7. HDU 5875 Function 【倍增】 (2016 ACM/ICPC Asia Regional Dalian Online)

    Function Time Limit: 7000/3500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  8. wp8模拟器中使用电脑键盘和模拟器的版本解释

    一:如图启用和关闭 二:电脑按键对应的手机的按键 三:模拟器的版本解释

  9. Delphi 为TClientdataset定义结果集,并增加记录

    Delphi 为TClientdataset定义结果集,并增加记录 procedure addDefsFieldsForCDS(aDataSet: TClientDataSet);begin  aDa ...

  10. JQuery获取元素宽度.width()与.css(‘width’)两个函数的区别

    整理翻译自:http://blog.jquery.com/2012/08/16/jquery-1-8-box-sizing-width-csswidth-and-outerwidth/ 大意是: 在J ...