codevs 1139 观光公交
#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 观光公交的更多相关文章
- vijos1741 观光公交 (贪心)
https://www.vijos.org/p/1741 P1741观光公交 请登录后递交 标签:NOIP提高组2011[显示标签] 描述 风景迷人的小城Y市,拥有n个美丽的景点.由于慕名而来的游 ...
- NOIP2011 观光公交
3.观光公交 (bus.cpp/c/pas) 风景迷人的小城 Y 市,拥有 n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特 意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 ...
- Luogu 1315 【NOIP2011】观光公交 (贪心)
Luogu 1315 [NOIP2011]观光公交 (贪心) Description 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供 ...
- NOIP观光公交
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #inc ...
- noip 2011观光公交
P1315 观光公交 95通过 244提交 题目提供者该用户不存在 标签贪心递推2011NOIp提高组 难度提高+/省选- 提交该题 讨论 题解 记录 题目描述 风景迷人的小城Y 市,拥有n 个美 ...
- 观光公交 2011年NOIP全国联赛提高组(贪心,递推)
观光公交 2011年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 风景迷人的小城 Y 市 ...
- [luogu]P1315 观光公交[贪心]
[luogu]P1315 [NOIP2011]观光公交 ——!x^n+y^n=z^n 题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车, ...
- luoguP1315 观光公交 题解(NOIP2011)(贪心)
P1315 观光公交 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include<cm ...
- 洛谷P1315 [NOIP2011提高组Day2T3] 观光公交
P1315 观光公交 题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务.观光公交车在第 0 分钟出现在 1号 ...
随机推荐
- C#技术分享【PDF转换成图片——13种方案】(2013-07-25重新整理)
原文:C#技术分享[PDF转换成图片--13种方案](2013-07-25重新整理) 重要说明:本博已迁移到 石佳劼的博客,有疑问请到 文章新地址 留言!!! 写在最前面:为了节约大家时间,撸主把最常 ...
- linux系统开机过程描述
本文描述linux系统开机过程,属于个人理解范畴,如果文中表述有误请大家批评指正! 计算机开机之后,首先要加载BIOS(基本输入输出系统)信息,BIOS包含了很多重要的信息,包括CPU信息,设备启动顺 ...
- ZOJ-2587-Unique Attack(最小割的唯一性)
题意: 求无向图最小割是否唯一 分析: 1.我们先对原图求一次最大流 2.对残留网络,我们从S开始,找到所有所有S能到达的点:再从T开始,找出所有能到达T的点. 3.判断原网络中是否还有没有访问到的点 ...
- Mac下Intellij IDea发布Java Web项目详解五 开始测试
测试前准备工作目录 Mac下Intellij IDea发布Web项目详解一 Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二 Mac下Intell ...
- about variables
局部变量(Local Variable),全局变量(global variable),变量共享; 静态局部变量(static local variables),函数运行结束变量值不会消失,并且其它函数 ...
- angularJS constant和value
angularJS可以通过constant(name,value)和value(name,value)对于创建服务也是很重要的. 相同点是:都可以接受两个参数,name和value. 区别: 1.co ...
- java參数传递机制浅析
欢迎转载,转载请声明出处! ----------------------------------------- 前言: java语言中,參数的传递仅仅有一种机制.那就是值传递. 举例: 以下将通过几个 ...
- android AppWidgwtProvider学习
实现AppWidgwtProvider: onUpdate() //在达到制定的更新时间之后或者当用户向桌面添加 App Widget时会调用该方法. onDeleted() //当App Wid ...
- 计算任意位数的Pi
当用程序实现求pi的值时,也许你能够很快写出算法(利用求pi的几个公式),但是由于使用单变量保存结果,限于计算机硬件对变量的表示范围有限,因此,最多只能计算出pi值小数点后十多位.但需要得到一个更大位 ...
- phoneGap 中修改生成APP的名字
最近忙着研究移动开发的事情,去学习了一下移动开发的东西,例如eclipse和phoneGap进行配合使用,感觉还是不错的,先针对eclipse和phoneGa的平台搭建这里先不在详细说啦,主要还是我们 ...