题目链接:https://www.oj.swust.edu.cn/problem/show/1190

思路:

   每在一段路上使用一次加速器,就会对某些人或者说某些路段上的人产生影响,目的是使产生的影响最大。

   假设在路段x(x路段链接的是x--x+1两个景点)上使用了一次加速器,并且,到达x+1点后,需要等待,那么这次加速只会影响x+1点下车的人。

对以后的点没有影响。因为加速的那段时间被等待了。什么情况下才要等待呢?在不加速的情况下等待或者时间刚好的时候。如果不等待,那么这次在x路

段的加速相当于也在x+1路段上加速了。那么这个影响可以用递推的方式一次性全部求出来。设g[x]表示在x路段上加速会影响的景点。

g[n-]=n;
for(int i=n-;i>;i--)
{
if(ti[i+]>t[i+])//表示车到达i+1点的时间要大于人到齐的时间
  g[i]=g[i+];
else
  g[i]=i+;
}

求得了可以影响的最远的点,那么就可以影响的总时间就等于在每个被影响的点下车的人数相加,维护前缀和就行,最后要去每次加速影响的最大值就行。

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=;
struct node
{
int arr,st,ed;//到达车站的时间,起点,终点。
}id[maxn*];
int t[maxn];//最晚时间
int ti[maxn];//到达时间
int sum[maxn];//effect
int dis[maxn];//
int g[maxn];
int n,m,k;
void init ()
{
memset(t,,sizeof(t));
memset(sum,,sizeof(sum));
}
int main()
{
while(~scanf("%d%d%d",&n,&m,&k))
{
init();
for(int i=;i<n;i++)
scanf("%d",&dis[i]);
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&id[i].arr,&id[i].st,&id[i].ed);
t[id[i].st]=max(t[id[i].st],id[i].arr);//到大某点的最晚时间
sum[id[i].ed]++;//到达某点的人数
}
for(int i=;i<=n;i++)
sum[i]+=sum[i-];
for(int i=;i<=n;i++)
ti[i]=max(ti[i-],t[i-])+dis[i-];
int ans=;
for(int i=;i<=m;i++)
ans+=ti[id[i].ed]-id[i].arr;
while(k)//
{
g[n-]=n;
for(int i=n-;i>;i--)
{
if(ti[i+]>t[i+])
g[i]=g[i+];
else
g[i]=i+;
}
int pos=,ma=;
for(int i=;i<n;i++)
{
if(dis[i]&&(sum[g[i]]-sum[i])>ma)
{
ma=sum[g[i]]-sum[i];
pos=i;
}
}
if(!ma)
break;
k--;
dis[pos]--;
ans-=ma;
for(int i=;i<=n;i++)
ti[i]=max(ti[i-],t[i-])+dis[i-];
}
printf("%d\n",ans);
}
return ;
}

观光公交noip<贪心>的更多相关文章

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

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

  2. vijos1741 观光公交 (贪心)

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

  3. [NOIP2011] 观光公交(贪心)

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

  4. 观光公交 [NOIP 2011] [思维推导]

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

  5. 洛谷P1315 观光公交 [noip2011D2T3] 贪心

    正解:贪心 解题报告: 这里是链接! 唔我觉得还是很容易想到是贪心的,这个难就难在怎么贪心 下面列一下常见的几个贪心思想: 1)根据车上的人数排序,人最多的那条路用加速器 错误,人数多并不意味着加速的 ...

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

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

  7. noip 2011观光公交

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

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

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

  9. NOIP观光公交

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

随机推荐

  1. hdu_5890_Eighty seven(bitset优化DP)

    题目链接:hdu_5890_Eighty seven 题意: 50个数,10W个询问,每次问删掉第i,j,k个数后,是否存在一种选10个数和为87的方案,只需要输出 ’Yes’ 或者 ’No’ 题解: ...

  2. 二分法经典习题——HDU1969

    #include <iostream>#include <cmath>#include <iomanip>using namespace std; double p ...

  3. 4、Hibenrate中HQL的10中查询方式

    二.具体事例如下: 2.0 编写如下sql语句 )); create sequence seq_teacher; insert into teacher values(seq_teacher.next ...

  4. 朱丽叶—Cuda+OSG

    #include <cuda_runtime.h> #include <osg/Image> ; typedef struct cuComplex { float r; flo ...

  5. TortoiseGit - 处理冲突

    处理冲突 冲突:远程的master已经被其他人更新到 2repo add 12,但是自己当前的工作区在未pull到最新前,增加了1repo add 12的改动. 右击最新的节点,选择Merge to ...

  6. jQuery 事件 - bind() 方法

    定义和用法 bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数. 实例1(一个事件) 记得把js引用地址换掉 当点击鼠标时,隐藏或显示 p 元素: <html&g ...

  7. 【编码问题】if,for语句与中文编码

    1. 首先先来说说中文的问题.众所周知,作死的python经常和中文过不去 每次,开头必须声明 # coding: utf-8 或者是 # -*- coding: utf-8  -*- 然而,被坑过的 ...

  8. 关于erlang的binary

    引自:http://cryolite.iteye.com/blog/1547252 1. binary数据是可以在不同进程间共享的 当然这些进程都在同一Erlang节点上. 这与普通term不同,后者 ...

  9. bootstrop之模态框关闭

    1.js中操作$('#myModal5').map(function() {//用id选择器选中要关闭的模态框 $(this).modal('hide'); //关闭 }); 2.用button在模态 ...

  10. 纯计算监控(Pure computed observables)

    纯计算监控,在knockout 3.2.0里才有,提供了对性能和内存更好的管理.这是因为纯计算监控不包含对他的依赖的订阅.特点有: 防止内存泄漏 降低计算开销:值不再是observed,是一个不会重新 ...