[洛谷P1315]观光公交

题解:洛谷 P1315 [NOIP 2011 提高组] 观光公交 一个乘客的旅行时间,等于他到达目的地的时刻减去他来到出发地的时刻。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务。为了使所有乘客都能顺利到达目的地,公交车在每站都必须等待需要从该景点出发的所有乘客都上车后才能出发开往下一景点。位乘客来到出发景点的时刻,出发的景点编号和到达的景点编号。个整数,每两个整数之间用一个空格隔开,第。一个整数,表示最小的总旅行时间。 阅读详情

题目←

模拟+贪心
一开始看到10^5的数据,以为要klogn就敲了个线段树上去
结果没考虑后效性,只过了3个点
正解:
一开始先处理出每一站的到站时间是对的,而随着修改到站时间的改变不一定满足前缀关系
假设在某一站有人很晚才出发,那不管先前改变了多少后面的到站时间都是不变的
综上
还需要维护修改一段距离时最远能影响到的点(递推标签的由来)
设修改i后的线段最远影响到的点为G[i]
设某一站最终出发的人时间为last[i],也就是汽车在这个站最早的出发时间
如果由前推来的To[i] >= last[i] +1,则说明i能影响到后面;
则G[i - 1]就可以由last[i]推来
否则即便修改i - 1后的线段最多也只能影响到在站点i下车的人们,G[i - 1] = i
注意修改后,随着D[i]的改变,To[i]也会改变

还有一点一开始没明白:
一个人的旅行时间是否受影响,仅于它的到达点有关系。
就是说当一个人的到达点被包含在i—G[i]时,不管出发点是否被包含其中,旅行时间是一定会被影响的
1、出发点在i及i前时,被影响的是坐上车后的时间
2、出发点在i后时,被影响的是等待时间

然后O(n*k)的模拟

#include<cstdio>
#include<iostream>
#include<algorithm>
#define LL long long
const LL M = 100000 + 60;
using namespace std;
LL n,m,k;
LL T[M],A[M],B[M],To[M];
LL D[M],last[M],ans,sum[M],O[M],G[M];
int main(){
     cin >> n >> m >> k;
     for(LL i = 1;i <= n - 1;i ++)cin >> D[i];
     for(LL i = 1;i <= m;i ++){
        cin >> T[i] >> A[i] >> B[i];
        O[B[i]] ++;
        last[A[i]] = max(last[A[i]],T[i]);
     }
     LL now = 0;
     for(LL i = 1;i <= n;i ++){
        now = max(now,last[i]);
        To[i] = now;
        now += D[i];
        sum[i] = sum[i - 1] + O[i];
     }
     G[n] = G[n - 1] = n;
     for(int i = n - 2;i >= 1;i --){
        if(To[i + 1] >= last[i + 1] + 1){
            G[i] = G[i + 1];
        }
        else G[i] = i + 1;
     }
     for(LL t = 1;t <= k;t ++){
        LL flag = -1,maxn = 0;
        for(LL i = 1;i <= n - 1;i ++){
            if(!D[i])continue;
            LL tmp = sum[G[i]] - sum[i];
            if(tmp > maxn){
                maxn = tmp;
                flag = i;
            }
        }
        if(flag == -1)break;
        D[flag] --;
        now = 0;
        for(LL i = 1;i <= n;i ++){
            now = max(now,last[i]);
            To[i] = now;
            now += D[i];
        }
        G[n] = G[n - 1] = n;
        for(int i = n - 2;i >= 1;i --){
            if(To[i + 1] >= last[i + 1] + 1){
                G[i] = G[i + 1];
            }
            else G[i] = i + 1;
        }
     }
     for(int i = 1;i <= m;i ++){
        ans += To[B[i] - 1] + D[B[i] - 1] - T[i];
     }
     cout << ans;
     return 0;
}
中国知网文献引用导入EndNote9.X,Web of science导入endnote以及谷歌学术导入endnote图文详解,全网最细版本适用EndNote9.x,Endnote20版本 在科研中用到EndNote管理文献,遇到插入文献时,中国知网如何将参考文献导进Endnote9.x或者web of sicence,谷歌学术如何将文章,文献导入进文献管理软件EndNote的详细图文2022版本解释,全网最细的笔记教程,值得大家参考收藏学习 阅读详情

相关推荐

ST-Link V2的隐藏技能:多通道串口调试的终极指南

本文深入探讨了ST-Link V2的多通道串口调试功能,突破传统烧录工具的限制。通过详细的硬件配置、Arduino IDE设置和实战案例,展示了如何利用SWD接口实现多通道数据监控,提升STM32F103C8T6等开发板的调试效率。文章还提供了PCB布局优化和性能调优技巧,助力开发者充分发挥ST-Link V2的潜能。

weixin_29285605的博客 355

洛谷P1315 观光公交(NOIP 2011)

题目描述 https://www.luogu.org/problemnew/show/P1315 数组含义 last[i]:在i点上车的人到达的最晚时间 sum[i]:在i点之前下车人数的总和 to[i]:到达i点的时间 t[i],b[i],e[i]:第i个人到达的时间 上车地点 下车地点 f[i]:i点能影响的最远站点 **注意:**如果使用加速器,到达i点后还要等人,这就浪费了加速器,不是最优...

ETwinner的博客 288

angular中访问本地json文件

先在assets文件夹下写一个json文件,这样在打完包之后也可以手动修改json文件内容 1、在需要访问本地json文件的ts文件里面引入 import{HttpClient}from'@angular/common/http'; 2、用ajax请求调用,我这里是用已经封装好的ajax请求调用 gethttp = ()=>{ var self = this self.ajax.getAjax("../../assets/server.json","g...

蜗牛~~ 1829

洛谷 P1315 观光公交 —— 贪心

题目:https://www.luogu.org/problemnew/show/P1315 问题是想不明白改动一条边会对后面造成怎样的影响; 实际上影响的会是一段,当某个车站出发时间受其来人牵制时,前面的时间减小就不会起到效果; 所以对于每个车站,求一个 g[i] 表示最远能影响到哪个车站,则修改 i 后面那条边,所有到达点在 i ~ g[i] 的人的时间都缩短1; 每次找一个...

aodan5477的博客 168

Cisco Packet Tracer实战:三层交换机链路聚合配置全流程(附常见错误排查)

本文详细解析了在Cisco Packet Tracer环境中配置三层交换机链路聚合的全流程,包括基础网络设置、LACP协议配置、路由协议集成及高级优化技巧。通过实战案例和常见错误排查指南,帮助网络工程师和CCNA备考学员掌握这一提升带宽利用率和实现链路冗余的核心技术。

grafana6viz的博客 228

使用MLP解决OCR问题(OpenCV)(下)

分类模型:        分类模型涉及的一个比较关键的问题就是输出的10维向量是如何与具体的类别挂钩的。实际上:10维向量的每一位都代表一类,在对于训练集的表达中,如果输入数据是0,则10维向量的第一位赋值为1,其余均为0。即0对应[1,0,0,0,0,0,0,0,0,0]。MLP模型训练完成后,就需要对用户输入的数据所属类别进行判定。这时得到的输出数据基本不可能是正好的所属类为1,其他位置为0

qq_18515405的专栏 1906

洛谷 P1315 观光公交

贪心

sdfzrlt的博客 462

解决Cursor AI工具地域限制报错的方法与原理

地理围栏(GEO-fencing)是现代云服务常用的访问控制技术,通过IP地址库匹配、支付系统验证等方式实现区域限制。在AI编程工具领域,这种技术常导致类似Cursor出现的'unsupported country region'报错。从技术实现看,服务商会综合HTTP头信息、时区设置等多维度数据进行地理位置判断。开发者可通过调整网络出口、配置本地模型或使用企业版等方案解决。本文以Cursor为例,详细分析了AI工具地域限制的底层原理,并提供了包括Ollama本地部署在内的多种工程实践方案,特别适合需要稳定

weixin_30820077的博客 941

洛谷P1315 观光公交

题目背景 感谢 @Transhumanist 提供的一组 Hack 数据 题目描述 风景迷人的小城 Y 市,拥有nn个美丽的景点。由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务。观光公交车在第00分钟出现在11号景点,随后依次前往2,3,4,\cdots,n2,3,4,⋯,n号景点。从第ii号景点开到第i+1i+1号景点需要D_iDi​分钟。任意时刻,公交车只能往前开,或在景点处等待。 设共有mm个游客,每位游客需要乘车11...

lzx_xzl_______的博客 258

Ansys Zemax | 多模光纤耦合效率优化与IMAE操作数实战解析

本文详细解析了在Ansys Zemax(OpticStudio)中优化多模光纤耦合效率的实战流程。通过几何图像分析诊断初始效率,并重点介绍了如何利用IMAE操作数将分析工具转化为自动化优化引擎,实现从2%到54%的几何效率飞跃。文章还探讨了引入菲涅尔损耗与偏振计算以逼近真实效率,并分享了关键的避坑指南与高阶技巧。

xk7n92h3p5m的博客 749

GeoServer下载与安装(详细图文教程)

GeoServer官方版可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。

大剑师兰特的GIS世界 3274

洛谷题解:P1315 [NOIP 2011 提高组] 观光公交

最为复杂,我们要使用加速器在最好的那条路上。哪条路最好呢?我们考虑以下过程:(

onsin77的博客 747

OpenClaw 报错 TypeError: Cannot read properties of undefined (reading ‘prototype‘):Node.js 版本不兼容

国产化环境中部署OpenClaw云边协同平台时,出现"TypeError: Cannot read properties of undefined (reading 'prototype')"报错。经分析发现根本原因是Node.js版本与依赖生态不兼容,新版本Node(如v21)移除了旧依赖使用的内部API。解决方案包括:1)使用nvm切换至兼容的Node 16/18 LTS版本;2)容器化部署固定Node版本;3)遵循官方推荐的引擎版本范围。该问题揭示现代工程中版本管理的重要性,

博客 2313

【洛谷P1315】观光公交【贪心】

贪心

ssllyr 176

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

洛谷题解 P1315 【观光公交】

这道题很多人都用的模拟(或者暴力),今天我就写一个“标准”的贪心发给大家。(我这段代码差点超时···也差点超内存···) 主要思路:通过贪心求得最小值即可,把加速器用到乘客最多的两个站(或者,如果有许多段路程乘客数都是最多,直接任选K段使用加速器) 代码贴上,大神勿喷 #include <cstdio> #include ...

206

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

洛谷P1315 观光公交(贪心)

P1315 观光公交 题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点。由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务。观光公交车在第 0 分钟出现在 1号景点,随后依次前往 2、3 、4 ……n 号景点。从第 i 号景点开到第 i+1 号景点需要 Di 分钟。任意时刻,公交车只能往前开,或在景点处等待。 设共有m 个游客,每位游客需要乘车1 次从一个景...

闲人请进 323

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

洛谷 P1315 [NOIP2011 提高组] 观光公交c++(求点赞、关注)

/ 更新当前时间为当前时间和站点i的最晚到达时间的最大值。

gonghangyu的博客 1755

【题解】【洛谷P1315】【贪心】【递推】——[NOIP 2011 提高组] 观光公交

一个乘客的旅行时间,等于他到达目的地的时刻减去他来到出发地的时刻。换句话说,某段路加速的效益,会沿着线路一直往后传导,直到遇见第一个“车等人”的站点为止(或者一直传到终点)。,当然,底下给出的两段代码是等价的,你也可以使用更容易理解的下面的版本,如下:(有一些细节请读者自行注意)至于另外一个影响因素,如果使用加速器的话是会动态变化的,即使使用前缀和也不好维护。的限制,所以这个修改产生的影响不一定是实际上产生的影响。下车的人数,在输入时就预处理了。位乘客来到出发景点的时刻,出发的景点编号和到达的景点编号。

Pantheraonca的博客 200

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

次元传送门:洛谷P1315 思路 思路大概想到了 可是代码实现却没想到 所以参考题解了 D2T3的贪心果然有难度 我们考虑在每次用加速器有两种情况 到下一个点还需要等待:以后的时间就不再影响了 到下一个点不需要等待:那么就会影响到后面的时间直到出现情况1(或者到最后一个点) 用sum[i]数组记录到i时的总人数 进行前缀和处理 e[i]为i可以影响到的最远的点 ...

196

洛谷 P1315 [NOIP2011 D2T3] 观光公交

(超麻烦的)递推+贪心

依然一笑作春温。 1946

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

P1315 观光公交 题目描述 风景迷人的小城Y 市,拥有n 个美丽的景点。由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务。观光公交车在第 0 分钟出现在 1号景点,随后依次前往 2、3 、4 ……n 号景点。从第 i 号景点开到第 i+1 号景点需要 Di 分钟。任意时刻,公交车只能往前开,或在景点处等待。 设共有m 个游客,每...

weixin_30432179的博客 90

[洛谷P1315]观光公交 模拟+贪心

题目← 模拟+贪心 一开始看到10^5的数据,以为要klogn就敲了个线段树上去 结果没考虑后效性,只过了3个点 正解: 一开始先处理出每一站的到站时间是对的,而随着修改到站时间的改变不一定满足前缀关系 假设在某一站有人很晚才出发,那不管先前改变了多少后面的到站时间都是不变的 综上 还需要维护修改一段距离时最远能影响到的点(递推标签的由来) 设修改i后的线段最远影响到的点为G[i] 设某一站最终出...

weixin_30648587的博客 117
上一篇: [洛谷P1313]计算系数
下一篇: [codevs2488]绿豆蛙的归宿
LOI_pingxing
博客等级 码龄10年 24粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值