正解:贪心

解题报告:

这里是链接!

唔我觉得还是很容易想到是贪心的,这个难就难在怎么贪心

下面列一下常见的几个贪心思想:

1)根据车上的人数排序,人最多的那条路用加速器  

  错误,人数多并不意味着加速的贡献就大.很容易举反例,比如车上有$100$个人都是在$A$站上车,$50$人在$B$站下车$50$人在$C$站下车,然后$B$站有个人来得比车晚.

那根据这个猜想的话就会要$AB$路上加速,但这显然是错的鸭.AB上加速完全没意义欸$QwQ$

2)根据缩短最多人数的路径排序 

  也就是说按照站点一个个来,然后我们很容易得知每个站点有没有迟到的人,没有的话我们就可以在它前面用,然后最后再看哪条路加速加的人最多就欧克了,这个倒序求下可以$O(n)$做.

欧克代码见下

 1 #include<bits/stdc++.h>
2 using namespace std;
3 long long d[1010],t[10010],a[10010],b[10010],off[1010],ti[10010],sum[10010],ans,us[10010],lst[1010];
4 long long read()
5 {
6 char ch=getchar();long long x=0;
7 while(ch>'9' || ch<'0')ch=getchar();
8 while(ch>='0' && ch<='9')x=(x<<1)+(x<<3)+(ch^'0'),ch=getchar();
9 return x;
10 }
11 int main()
12 {
13 long long n=read(),m=read(),k=read();
14 for(long long i=1;i<n;i++)d[i]=read();
15 for(long long i=1;i<=m;i++)t[i]=read(),a[i]=read(),b[i]=read(),off[b[i]]++,lst[a[i]]=max(lst[a[i]],t[i]);
16 for(long long i=2;i<=n;i++)ti[i]=max(ti[i-1],lst[i-1])+d[i-1];
17 for(long long i=1;i<=n;i++)sum[i]=sum[i-1]+off[i];
18 for(long long i=1;i<=m;i++)ans+=ti[b[i]]-t[i];
19 ti[1]=lst[1];us[n]=us[n-1]=n;
20 while(k--)
21 {
22 for(long long i=2;i<=n;++i)ti[i]=max(ti[i-1],lst[i-1])+d[i-1];
23 for(long long i=n-2;i;--i)
24 {
25 if(ti[i+1]>lst[i+1])us[i]=us[i+1];
26 else us[i]=i+1;
27 }
28 long long nn=0,mm=0;
29 for(long long i=1;i<n;++i)
30 if(sum[us[i]]-sum[i]>nn && d[i])nn=sum[us[i]]-sum[i],mm=i;
31 ans-=nn,d[mm]--;
32 }
33 cout<<ans<<endl;
34 return 0;
35 }

没有注释,但这个想法其实很容易想到的所以我也懒得写注释了,$QwQ$

然后随便优化下可以优化成$n^2$

数据结构优化下似乎可以到$nlogn$,详见$gzy$贪心$ppt$

洛谷P1315 观光公交 [noip2011D2T3] 贪心的更多相关文章

  1. 洛谷 P1315 观光公交 —— 贪心

    题目:https://www.luogu.org/problemnew/show/P1315 问题是想不明白改动一条边会对后面造成怎样的影响: 实际上影响的会是一段,当某个车站出发时间受其来人牵制时, ...

  2. NOIP2011 洛谷P1315 观光公交

    题目传送门 先解释一下数组的意义: d[i]表示公交车从第i个点到第i+1个点需要的时间 pas结构体中:t表示这个乘客到公交站牌的时间,u表示起点,v表示终点 wait[i]表示公交车在第i个站点等 ...

  3. [NOIP2011] 提高组 洛谷P1315 观光公交

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

  4. 洛谷P1315 观光公交

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

  5. 【题解】洛谷P1315 [NOIP2011TG] 观光公交(前缀和+贪心)

    次元传送门:洛谷P1315 思路 思路大概想到了 可是代码实现却没想到 所以参考题解了 D2T3的贪心果然有难度 我们考虑在每次用加速器有两种情况 到下一个点还需要等待:以后的时间就不再影响了 到下一 ...

  6. 洛谷P1315 [NOIP2011提高组Day2T3] 观光公交

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

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

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

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

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

  9. vijos1741 观光公交 (贪心)

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

随机推荐

  1. buildroot 编译问题

    buildroot 编译的时候,出现 g++: internal compiler error: Killed (program cc1plus) 这个是因为虚拟机内存不足的原因, 加上一些内存即可 ...

  2. Genymotion模拟器出现INSTALL_FAILED_NO_MATCHING_ABIS 的解决办法

    下载插件: http://files.cnblogs.com/files/feijian/genymotion-arm-translation_v1.1.zip 步骤: 将模拟器运行起来,然后将下载好 ...

  3. Mac/Linux如何查找应用所安装路径

    Linux.Mac中查看某 个软件的安装路径(地址)有时显得非常重要.比如某个文件的快速启动项被删除,或者你要建立快速启动项,或者想删除. 添加安装文件等等,很多地方都要用到查案文件安装路径的命令. ...

  4. Linux时间变慢解决方法

    情景:系统为CentOS-5.4,硬件时间正确(查看硬件时间的方法见下面),系统时间每隔24小时会慢20分钟左右Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Cl ...

  5. Spring源码学习:day2

    前言: 我还是太懒了,连截图都懒得粘贴,故直接用书上说的话的截图吧. 代码的编写过程都是应该有一个入口的,所有的代码最终都是为了那个入口更加方便更加简单而产生的. 看代码的过程,就应该抓住主线,顺着主 ...

  6. python之WSGI与Guincorn

    WSGI与Guincorn WSGI WSGI (Web Server Gateway Interface),WSGI是为Python语言定义的Web服务器和Web应用程序之间的一种通用接口. 如下图 ...

  7. Tomcat -- 启动错误 -- 解决锦集

    java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter :在Tomacat7的context.xml文 ...

  8. IOS开发之--iPhone XR,iPhone XS Max适配

    因为iPhone X和iPhone XS的尺寸比是一样的,只需要把这两张图片补上就行. 具体原理性的东西就多说了,因为iPhoneX系列都一样,本文只说明一下具体怎么做,要适配屏幕,首先得让他以正确的 ...

  9. 腾讯云Badjs镜像使用入门

    版权声明:本文由王少飞 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/498929001487125840 来源:腾云阁  ...

  10. Linux Kafka集群管理工具kafka-manager的安装使用

    一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...