话说,我终于AC了这个题

这是一个贪心,说实话开始做的时候......完全没看出来QAQ。。

可能有人说这是个dp,但这真不是(dalao请无视)

这真的只是个贪心。。。。

首先对于每个点当然是能走就走,
不能走就等待,这是无法控制的。
所以只考虑氮气加速器加在哪里可以使时间总和尽量少。

所以

如果选择加速,可能会使后面等待的时间更长,或者更短,对后面都会有影响。

但是沿着一条边加速会影响后面的所有边么?

这可不一定

来来来,我们分类讨论一下:

1.到下一个点还需要等待:以后的时间就不再影响了
2.到下一个点不需要等待:对以后的时间还会加速直到……出现情况1(或者到最后一个点)!!

即每次用加速器都会对后面的人有影响,

用 $ sum_i $ 记录到i的人数,前缀和处理, $ g_i $ 代表每个点所能影响到的最远点,

那么 $ sum_{i + g_i} - sum_i $ 即是能影响到的人数

这样就很容易想到选择影响尽量大的点减掉(在这里贪心)。

CODE:

/*last[i] : 最后一个人到达i站点的时间。
sum[i] : 到i站点的总人数。
enter[i] : 公交车到i站点的最少时间。
g[i] : 每个站点所能影响到的最远站点,即要求的影响。*/
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>#define N 30001using namespace std;int n,m,k;
int dis[N],last[N],g[N],enter[N];
int ans,sum[N],maxx = -1;struct node {int time,start,end;
}a[N];inline void bus(int x) {while(x) {--x;g[n] = g[n - 1] = n;int tar;maxx = -1;for(int i = n - 2 ; i >= 1 ; -- i) {if(enter[i + 1] <= last[i + 1])//下一个点如果等待 g[i] = i + 1;//最多影响到下一个else //不等待 g[i] = g[i + 1];//继续减少后面的时间 }for(int i = 1 ; i < n ; ++ i){//for边数 int tmp = sum[g[i]] - sum[i];//最多影响的人数 if(tmp > maxx && dis[i] > 0){maxx = tmp;tar = i;//标记最优情况减的点 }}ans -= maxx;//更新ans dis[tar] --;//减掉dis for(int i = 2 ; i <= n ; ++ i)enter[i] = max(enter[i - 1],last[i - 1]) + dis[i - 1];//重新更新enter }return;
}int main(){scanf("%d%d%d",&n,&m,&k);for(int i = 1 ; i < n ; ++ i)scanf("%d",&dis[i]);for(int i = 1 ; i <= m ; ++ i)scanf("%d%d%d",&a[i].time,&a[i].start,&a[i].end);for(int i = 1 ; i <= m ; ++ i) {last[a[i].start] = max(last[a[i].start],a[i].time);//最后一个人到a[i].start站点的时间 和到这个点的时间取max sum[a[i].end] ++;}enter[1] = last[1];for(int i = 1 ; i <= n ; ++ i)sum[i] += sum[i - 1];//到i站点的总人数 前缀和处理for(int i = 2 ; i <= n ; ++ i)enter[i] = max(enter[i - 1],last[i - 1]) + dis[i - 1];//公车到i站点的最少时间 和最后到的时间取max for(int i = 1 ; i <= m ; ++ i)ans += enter[a[i].end] - a[i].time;//处理出不加加速器的answer,后面就可以直接减啦~bus(k);printf("%d \n",ans);return 0;
}

真的是考验智商QAQ...

转载于:https://www.cnblogs.com/Repulser/p/10665627.html

NOIP2011 观光公交相关推荐

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

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

  2. 【做题记录】[NOIP2011 提高组] 观光公交

    P1315 [NOIP2011 提高组] 观光公交 我们想在 \(k\) 次加速每一次都取当前最优的方案加速. 考虑怎样计算对于每一条边如果在当前情况下使用加速器能够使答案减少的大小. 如果当前到达某 ...

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

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

  4. 【洛古 P1315】 [NOIP2011 提高组] 观光公交

    [NOIP2011 提高组] 观光公交 题目背景 感谢 @Transhumanist 提供的一组 Hack 数据 题目描述 风景迷人的小城 Y 市,拥有 n n n 个美丽的景点.由于慕名而来的游客越 ...

  5. 观光公交削弱_削弱Web开发人员和Internet的7大障碍

    观光公交削弱 As a web developer I periodically take a step back from the text editor and look at the lands ...

  6. 观光公交削弱_您的工作可能如何削弱您的技术技能

    观光公交削弱 对简单的入门和故障安全环境的渴望使开发人员感到自我破坏. 现代软件应用程序是巨大的. 甚至小型公司产品也可以由抽象的层次组成. 根据与您最紧密合作的那一层,您可能会错过很多东西. Mar ...

  7. 【NOIP2011 Day 2】观光公交

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

  8. jzxx2852观光公交

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

  9. 洛谷P1315 观光公交

    SB贪心......暴露了我代码能力巨弱的本质. 题面 解:首先我们应该想到DP(但是我想到了贪心......) 然后分析题目本质,每个点有个限制,最早开走时间不得早于最晚上车时间. 然后我们就可以把 ...

最新文章

  1. Java常用的集合类
  2. 【CV】基于python和OpenCV构建智能停车系统
  3. Go语言学习资料整理
  4. linux硬盘检测工具,CrazyDiskInfo 硬盘检测工具 Linux版 | 厘米天空
  5. linux之/usr/local/bin和/usr/bin区别
  6. mysql快速上手3
  7. rust建的怎么拆除_罗志祥私建泳池已拆除,后续还将接受物业的监督与教育
  8. 如何 sizing 一台物理机上可以承载多少 VMware 虚拟机? 分享 Vsphere HA 几个实用知识点
  9. tornado 重定向404
  10. android自定义pickerview,开源项目 好用的PickerView库了
  11. 最不可思议的职场语录
  12. 金九银十,23届秋招信息超全汇总表!各大名企优质岗位持续更新中···
  13. 关于Aegisub的视频滤镜插件和字幕滤镜插件
  14. AutoCAD2006软件下载AutoCAD2006安装方法
  15. 【AI语音】魔百盒M301H-JL代工-3798MV300芯片-支持蓝牙_免费固件包
  16. 阿里云为啥在云服务器市场输给腾讯云
  17. 指南针 android gps,北斗GPS指南针
  18. hdu-5643 King's Game(打表)
  19. LinkedList的模拟实现(Java实现)
  20. 优宝库强势入围深圳创新创业大赛半决赛,珠宝行业仅此一家

热门文章

  1. 动态添加表格或者表单元素
  2. 2022年最新前端面试题,持续更新
  3. 虚拟现实开发一些建议
  4. Linux--僵死进程(僵尸进程)
  5. 厉害了!这个人工智能化编辑部,一定让你大开眼界!(附:视频)
  6. 心灵:你有多久没有被感动过了?
  7. jmeter接口测试步骤(基础)超级详细……接口断言+关联设置教程
  8. 中学计算机课教具,中小学科学课的自制教具与使用
  9. HTML根据当前时间显示问候语,用原生JS写根据时间显示问候语
  10. excel 第6讲:认识数据透视表