P1315 [NOIP2011 提高组] 观光公交

我们想在 \(k\) 次加速每一次都取当前最优的方案加速。

考虑怎样计算对于每一条边如果在当前情况下使用加速器能够使答案减少的大小。

如果当前到达某个点时已经有人在等待了,那么加速这个点以前的边能够让这个点下车的人距离减少,而对于仍旧在车上的没有贡献。

如果到达这个点时车还需要等待人,那么加速之前的的边对车上人的影响会在以后的点(直至这些人下车时)再会计算,而能够让在这个点下车的人距离减少。

综上,我们发现减少一条边的距离会使在这个点下车的人距离减少,这个贡献保留到人等车的那一刻,所以我们就可以在 \(k\) 次加速每次处理到达这个点的时间与最后一个人到达的时间,到这取最大值即可。

#define Maxn 10005
int n,m,k,ans;
int Last[Maxn],cntup[Maxn],cntdown[Maxn],arr[Maxn],d[Maxn];
int s[Maxn],t[Maxn],x[Maxn];
int main()
{n=rd(),m=rd(),k=rd();for(int i=2;i<=n;i++) d[i]=rd();for(int i=1;i<=m;i++){x[i]=rd(),s[i]=rd(),t[i]=rd();cntup[s[i]]++,cntdown[t[i]]++;Last[s[i]]=max(Last[s[i]],x[i]);ans-=x[i];}while(k--){for(int i=1;i<=n;i++)arr[i]=max(Last[i],arr[i-1]+d[i]);int hav=0,MAX=0,pos=0;for(int i=n;i>=2;i--){if(arr[i]==Last[i]) hav=cntdown[i];else{hav+=cntdown[i];if(d[i] && hav>MAX) MAX=hav,pos=i;}}if(pos) d[pos]--;else break;}for(int i=1;i<=n;i++)arr[i]=max(Last[i],arr[i-1]+d[i]),ans+=cntdown[i]*(arr[i-1]+d[i]);printf("%d\n",ans);return 0;
}

【做题记录】[NOIP2011 提高组] 观光公交相关推荐

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

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

  2. CTF-web做题记录(狼组/BUUCTF)【一】

    CTF-web做题记录(狼组/BUUCTF)[一] WEB 1.ctf.wgpsec 你可能需要一部iphone 题目如下 考察点:user-agent,burp改为iphone的user-agent ...

  3. 2023-01-06做题记录

    牛客网小白月赛65 A-牛牛去购物 题目描述 牛牛带着 n 元钱去超市买东西,超市一共只有两款商品,价格为 a 元的篮球和价格为 b 元的足球,牛牛想把手里的钱尽可能花光,请问牛牛最少能剩多少钱? 输 ...

  4. 2020.7月做题记录

    转眼就到了2020的下半年了-前方仍是一片茫然. 长期计划 prufer 序列 2020.07.02-2020.07.04 Problem Finished P2624 [HNOI2008]明明的烦恼 ...

  5. 洛谷P1003 铺地毯 noip2011提高组day1T1

    洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...

  6. 退役前的做题记录5.0

    退役前的做题记录5.0 出于某种原因新开了一篇. [CodeChef]Querying on a Grid 对序列建立分治结构,每次处理\((l,mid,r)\)时,以\(mid\)为源点建立最短路树 ...

  7. Regional 做题记录 (50/50)

    写在前面 博主深感自己太弱了QAQ 于是有了一个刷水的想法,Regional的题目还是有很多考查思维的题目,所以这次是乱做50道思考题,可能会顺带做一些水题,这些题的简要题解会写到这篇博文里面,希望能 ...

  8. 退役前的做题记录1.0

    退役前的做题记录1.0 租酥雨最近很懒qwq,具体表现在写题的时候不想发题解了. 但是想想这样也不太好,就决定发个一句话(半句话到几句话不等)题解上来. 2018-09.18-2018-09.28 [ ...

  9. 退役前的做题记录2.0

    退役前的做题记录2.0 最近在刷省选题......大致上是按照省份刷的. 不过上面的题目顺序是按照写题的顺序排列的,所以可能会有点乱哈. [BZOJ2823][AHOI2012]信号塔 最小圆覆盖,随 ...

最新文章

  1. makeMtk- user 版本编译
  2. 【机房真是】。。。各种蛋疼。。。
  3. [html] 如何在网页中嵌入公司地址的地图?
  4. Spring官方阅读笔记-@Controller官方解析与实例(5.0.12)
  5. Golang生成C动态库.so和静态库.a
  6. pip安装指定版本包
  7. (6)FPGA面试技能提升篇(OpenCV)
  8. 取消centOS7虚拟机锁屏
  9. 常用函数的连续傅里叶变换对
  10. 【经验心得】关于RPGmaker的工程解码
  11. window.location.href重定向 不会触发webview
  12. java手写map,手写 RxJava ---- map 操作符
  13. 判断整数_2021暑期强化不定方程整数解问题
  14. Pure Pursuit纯跟踪算法的Matlab算法实现
  15. Docker离线安装部署文档
  16. python基础学习总结
  17. 观察者模式的一个例子
  18. c++的*号是否有空格的区别以及char*转std::vector<float>解析
  19. VSCODE+EIDE开发STM32
  20. 真是没想到 Springboot + Flowable 开发工作流会这么简单

热门文章

  1. java压缩成.tar_java压缩tar.gz | 学步园
  2. python中x_python中round(x,[n])的使用
  3. android 打开谷歌导航,国内开启google位置记录功能/android版google maps 7+上,恢复位置记录功能在国内使用(需root)...
  4. 7-2 港口审查 (15 分)
  5. C++类对象作为类成员
  6. 李洪超 硬件工程师_西安职位|各类工程师,软件开发等多岗位招募,轻松月入过万,全程视频面试...
  7. 家居灯光控制系统设计 android,基于Android的室内照明控制系统设计与实现
  8. sklearn随机森林概述
  9. HDU 1404 Digital Deletions(博弈 + SG函数打表)
  10. Codeforces Round #648 (Div. 2)(A, B, C, D)