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号 ...
随机推荐
- Eclipse调试的一些小技巧
不要使用System.out.println作为调试工具 启用所有组件的详细的日志记录级别 使用一个日志分析器来阅读日志 1.条件断点 想象一下我们平时如何添加断点,通常的做法是双击行号的左边.在de ...
- 静态与动态IP设置
静态IP设置 netsh interface ipv4 set address name="本地连接" source=static addr=192.168.0.212 (这个地方 ...
- A Simple problem
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2497 题意:给出顶点数,边数及节点s,判断s是 ...
- supesite 连 discuz 论坛记录
上一篇,网站supesite里 有 config.php 这里记录访问地址,到时候可以更改这里变更域名或者外网地址. 这里同样也是 下载discuz,解压,bbs 下的文件为有效的内容,放到supe ...
- SRM 397(1-250pt)
题意:对于一个长度n的数列(由1-n组成,n <= 8),每次操作可以reverse k个连续的数.问最少多少次操作可以将该数列转化成递增的数列. 解法:就是一个BFS.只是由于最开始学习BFS ...
- poj 1631 LIS
题目链接:http://poj.org/problem?id=1631 #include <cstdio> #include <cstring> #include <io ...
- 关于node升级到7.0,无法gulp alljs的问题
http://stackoverflow.com/questions/40308623/cannot-find-module-internal-fs-afer-upgrading-to-node-7 ...
- HDU--杭电--1253--胜利大逃亡--广搜
胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Subm ...
- SQLServer中使用索引视图(物化视图)
物化视图:以前用的普通的视图,普通视图就是一段逻辑语句,对性能没有任何的提升,也不能创建索引,而物化视图会把视图里查询出来的数据在数据库上建立快照,它和物理表一样,可以创建 索引,主键约束等等,性能会 ...
- Core OS 层
Core OS层的底层功能是很多其他技术的构建基础.通常情况下,这些功能不会直接应用于应用程序,而是应用于其他框架.但是,在直接处理安全事务或和某个外设通讯的时候,则必须要应用到该层的框架. Acce ...