正解:贪心

解题报告:

这里是链接!

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

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

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. Java知多少(7)类与对象

    Java是一门面向对象的编程语言,理解Java,首先要理解类与对象这两个概念. Java中的类可以看做C语言中结构体的升级版.结构体是一种构造数据类型,可以包含不同的成员(变量),每个成员的数据类型可 ...

  2. Mysql系列一:SQL入门

    csdn博客搬迁 连接数据库:1.在dos窗口下,进入数据库的安装目录的bin目录下,使用mysqld命令启动数据库服务,或者在计算机的服务里面启动mysql服务2.另外打开一个dos窗口,进入数据库 ...

  3. 使用Sublime Text搭建python调试环境[转]

    pycharmt等IDE虽然用着爽,但毕竟在速度.资源上还是比较让人不爽的. 使用IDE无非是图个方便省事,特别是像我这种有些记性差的来说. IDE说起来方便于的几个地方就是: 1.语法颜色高亮 2. ...

  4. ThinkingInJava 学习 之 0000003 控制执行流程

    1. if-else 2. 迭代 1. while 2. do-while 3. for 4. 逗号操作符 Java里唯一用到逗号操作符的地方就是for循环的控制表达式. 在控制表达式的初始化和步进控 ...

  5. Hadoop -- ES -- CURD

    1.获取ES连接 package com.ciic.history.common; import org.elasticsearch.client.transport.TransportClient; ...

  6. 第39级台阶|2013年蓝桥杯B组题解析第三题-fishers

    第39级台阶 小明刚刚看完电影<第39级台阶>,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶.先迈左脚, ...

  7. python数据类型之字典(二)

    字典的基本操作 键值查找: >>> aInfo = {'Wangdachui':3000,'Niuyun':2000,'Linling':4500,'Tianqi':8000} &g ...

  8. 移位运算符:<<,>>,>>>总结

    位移总结篇:带demo讲解 https://www.cnblogs.com/yyangblog/archive/2011/01/14/1935656.html

  9. 如何移植freertos

    要素: 1.两个主要的文件夹移动 2.freertos_config 复制,决定了系统时钟启动位置 3. 启动汇编复制替换 4.it中断管理文件 的相关三个中断注释掉 5.复制delay文件,主要是s ...

  10. [No0000156]天干地支-狗年我懂,戊戌二字怎么来的?

    话说,这几年的年份,总能让人联想到历史课本.比如,2014年是甲午马年,是中日甲午战争120周年.而2018年是戊戌狗年,嗯,戊戌变法也过去120年了…… 狗年相信大家都了解,小观前面两期关于反犬旁和 ...