【天梯赛:L2-014 列车调度】

列车调度(Train) 列车调度(Train) 描述 某列车调度站的铁道联接结构如图所示。 其中,A为入口,B为出口,S为中转盲端。所有铁道均为单轨单向式:列车行驶的方向只能是从A到S,再从S到B;另外,不允许超车。因为车厢可在S中驻留,所以它们从B端驶出的次序,可能与从A端驶入的次序不同。不过S的容量有限,同时驻留的车厢不得超过m节。 设某列车由编号依次为{1, 2, ..., n}的n节车厢组成。调度员希望知 阅读详情

天梯赛:L2-014 列车调度

题目描述

在这里插入图片描述

两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?

输入样例:

9
8 4 2 5 3 9 1 6 7

输出样例:

4

思路

建立N个栈,cnt记录当前用了几个栈,就是几个轨道。遍历火车,找到比当前火车编号大的第一个轨道上的栈顶火车,压入栈;找不到就引入下一个轨道。

注意事项

1.栈空间限制

使用数组模拟,只存储栈顶元素

2.时间限制,n是1e5级别

二分来优化时间复杂度

完整代码

#include<bits/stdc++.h>
using namespace std;

const int N = 101010;
int a[N];
int stk[N];
int cnt = 0;
int not_found = 0x3f3f3f3f;

int find(int l, int r, int x){ //找到第一个比x大的数
    l = l-1, r = r+1;
    int mid = l+r>>1;
    while(l+1!=r)
    {
        if(stk[mid]<=x) l = mid;
        else r = mid;
        mid = l+r>>1;
    }
    if(l>=0 && stk[l]<x && l==cnt) return not_found;
    else return r;
}
int main()
{
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int n; cin >> n;
    cin >> a[0]; stk[0] = a[0];
    for(int i=1;i<n;i++){
        cin >> a[i];
        int t = find(0,cnt,a[i]);
        //cout<<t<<endl;
        if(t==not_found) stk[++cnt] = a[i];
        else stk[t] = a[i];
    }
    cout<<cnt+1;
    return 0;
}

L2-014 列车调度 (25分) L2-014 列车调度 (25分) 火车站的列车调度铁轨的结构如下图所示。 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度? 输入格式: 输入第一行给出一个整数N (2 ≤ N ≤10 ​5 ​​ ),下一行给出从1到N的整数序号的一个重排列 阅读详情

相关推荐

PTA天梯赛L2-014题解:用STL set实现列车调度,原来贪心算法还能这么玩

本文深入解析PTA天梯赛L2-014题,展示如何利用STL set实现高效的列车调度算法。通过贪心策略和set的有序特性,能够以O(n log n)时间复杂度求解最少轨道数,适用于大规模数据处理。文章详细比较了set与vector的实现差异,并提供了竞赛实战技巧和常见错误分析。

weixin_42522552的博客 251

L2-014. 列车调度-PAT团体程序设计天梯赛GPLT

L2-014. 列车调度火车站的列车调度铁轨的结构如下图所示。 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第...

柳婼 の blog 3541

PTA天梯赛L2-014:用STL set的lower_bound函数,5分钟搞懂列车调度贪心解法

本文详细解析了PTA天梯赛L2-014列车调度问题的贪心解法,重点介绍了使用STL set的lower_bound函数实现高效求解。通过5行核心代码展示如何维护堆顶数字集合,并分析set相较于vector的优势,帮助竞赛选手快速掌握这一经典算法套路,提升解题效率。

weixin_26934905的博客 193

L2-014 列车调度 【贪心】详解

思路: 首先,一条火车道可以停很多俩火车 我们需要尽量减少加轨道条数,也就是新的火车最好能到一条路线的末尾排着,而为了之后的顺序输出,一条轨道上后面的车需要比前面的编号小,这就产生了选择问题。选择时可以归结出以下逻辑: 选择时要减少轨道条数,增加轨道条数的条件是需要进入的火车大于所有链尾序号,所以为了减小这个条件的成立可能性,就需要使每条轨道尽量多地容纳。举个例子,比如我们现在有两条轨道...

weixin_43535668的博客 405

PAT天梯赛L2-014‘列车调度’:从暴力超时到set+lower_bound的优化心路(附测试点1、3分析)

本文详细解析了PAT天梯赛L2-014‘列车调度’题目,从暴力解法到使用set+lower_bound的优化过程。通过分析测试点1和3,揭示了暴力超时的原因,并展示了如何利用Dilworth定理和LIS问题优化算法。文章还提供了代码实现和调试技巧,帮助读者掌握高效解决类似问题的方法。

weixin_42620913的博客 384

PAT天梯赛L2-014‘列车调度’:一个样例讲透贪心与最长上升子序列的等价关系

本文深入解析PAT天梯赛L2-014‘列车调度’问题,通过具体样例{8,4,2,5,3,9,1,6,7}揭示贪心算法与最长上升子序列(LIS)的等价关系。详细讲解最少铁轨数的计算原理、贪心策略的实现方法,以及如何利用Dilworth定理理解问题本质,帮助选手掌握算法核心思想并优化解题策略。

weixin_42614269的博客 275

PTA 天梯赛 L2-014 列车调度

L2-014 列车调度 (25分) 火车站的列车调度铁轨的结构如下图所示。 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度? 输入格式: 输入第一行给出一个整数N (2 ≤ N ≤10^5​​ ),下一行给出从1到N的整数序号的一个重排列。

Gettler的博客 4111

PAT 天梯赛 L2-014. 列车调度 【队列】

题目链接 https://www.patest.cn/contests/gplt/L2-014 思路 其实 每条火车道 都可以视为一个队列 满足队列的性质 当已经存在的队列 中 的列车序号 都小于 当前需要入队的列车序号时 或者一开始 本来就没有队列的情况下 就需要新增队列 如果目前的队列中存在列车序号 大于 当前入队的列车 那么替换那个最小的 大于当前入队列车序号的 队列序号 然后 ...

Dup4'Blog 643

PTA天梯赛L2-014题解:用C++ STL set实现列车调度,5分钟搞懂贪心+二分

本文详细解析了PTA天梯赛L2-014列车调度问题,通过C++ STL set结合贪心算法和二分查找,实现高效解决方案。文章从问题抽象、算法设计到代码实现,逐步讲解如何利用set的自动排序和高效查找特性,优化轨道调度问题,适合算法竞赛选手和C++开发者学习参考。

weixin_30800987的博客 401

Latex参考文献中大写字母编译后自动变成了小写,如何保持原字母大写形式

bib文件参考文献中大写自动变为小写,如何保持原大写问题。Latex: 保持参考文献大小写,overleaf文献编译后,原大写字母自动变成了小写字母,如何保持原字母大写

我的个人博客 5806

CAN收发器选型避坑指南:TJA1051T与TJA1051T/3的硬件兼容性问题实录

本文详细解析了CAN收发器TJA1051T与TJA1051T/3的硬件兼容性问题,通过实测数据和故障案例揭示了VIO引脚的关键差异及其对系统的影响。提供从选型到验证的完整防坑方案,帮助开发者避免常见设计错误,确保CAN总线通信的稳定性。

weixin_42715608的博客 458

PTA 天梯赛 L2-014:列车调度 ← STL set / STL vector

● 贪心思想:由于每条轨道内的编号必须单调递减,只有比轨道末尾数字更小的列车才能进入该轨道。因此,轨道末尾数字越大,后续能接纳的数字范围就越广,调度潜力也就越强。基于这一特点,我们采用如下贪心策略:对于每一辆待调度的列车,在所有可以接纳它的轨道中,选择末尾数字最小的那条轨道放入。这样可以尽可能保留那些末尾数字更大、调度潜力更强的轨道,为后续更大的数字留出充足的安排空间,从而最大程度复用已有轨道,减少所需轨道的总数。

hnjzsyjyj的专栏 699

编程小白的自学笔记四(正则表达式模块search函数)

本文仅仅简单介绍了search的使用,供小白学习探讨。

m0_49914128的博客 2322

天梯赛 L2-014 列车调度:从暴力模拟到 set 优化的算法跃迁

本文深入解析天梯赛L2-014列车调度题目,从暴力模拟法到set优化的算法跃迁。通过样例分析揭示问题本质为寻找最长递减子序列,详细讲解如何利用C++ set和lower_bound实现O(NlogN)高效解法,并针对测试点提供常见错误分析与优化建议,帮助选手掌握算法竞赛中的关键思维模式。

weixin_33670713的博客 242

C# 上位机高级功能实战:报警、历史回放与远程监控

本文介绍了工业上位机系统的高级功能实现,主要包括实时报警机制、历史数据回放和远程监控三部分。报警功能通过阈值检测实现异常提醒;历史回放利用数据库存储数据,通过定时器控制回放进度;远程监控提供TCP、WebSocket等多种数据传输方式。文章还给出了综合优化建议,如异步处理、报警去抖动等,最终形成一个包含数据采集、显示、存储、报表及高级功能的完整工业自动化闭环系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 753

【A_Star三维路径规划】基于matlab A_Star算法结合B样条平滑三维地形路径规划(含雷达威胁)【含Matlab源码 3527期】

A_Star算法结合B样条平滑三维地形路径规划(含雷达威胁) 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 741

PAT天梯赛L2-014列车调度:从超时到AC,我是如何用C++ set和lower_bound优化代码的

本文详细解析了PAT天梯赛L2-014列车调度问题的优化过程,从最初的暴力枚举到使用C++ set和lower_bound实现高效算法。通过分析测试点超时原因,作者展示了如何将时间复杂度从O(n²)优化到O(n log n),并提供了详细的代码实现和调试经验,帮助读者掌握算法优化技巧。

weixin_28725949的博客 355

模型压缩技术:剪枝、量化与知识蒸馏实战

模型压缩技术:剪枝、量化与知识蒸馏实战,在深度学习领域,模型的性能往往与模型的规模紧密相关,更大的模型通常能学习到更复杂的模式,从而在任务中取得更好的效果。然而,随着模型规模的不断增大,其在实际应用中面临着诸多挑战,如内存占用高、计算资源需求大、推理速度慢等问题,这使得在资源受限的设备(如移动设备、嵌入式设备)上部署变得困难重重。模型压缩技术应运而生,它旨在在尽可能保持模型性能的前提下,通过各种方法减少模型的参数数量和计算量,提高模型的效率和可部署性。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 5万+

天梯赛 L2-014 列车调度 (25 分)

天梯赛 L2-014 列车调度 (25 分)

MingLe_Z的博客 192

Python电商网站全站爬虫实战:以京东为例的数据采集与分析

随着电子商务的蓬勃发展,电商数据已成为市场研究、竞争分析和消费者行为研究的重要资源。本文详细介绍了如何使用Python最新技术栈构建一个高效的电商网站全站爬虫,以京东为例实现商品数据的自动化采集。文章涵盖了爬虫的法律与伦理考量、技术选型、反爬虫策略应对、分布式架构设计以及数据存储方案,并提供了完整的代码实现。本爬虫系统采用Scrapy-Redis分布式框架、Selenium动态渲染、智能代理轮换和机器学习验证码识别等先进技术,能够稳定高效地抓取京东全站商品数据,为电子商务研究提供数据支持。关键词。

2201_76125261的博客 415

PostgreSQL的学习心得和知识总结(八十二)|深入理解PostgreSQL数据库SQL语句的词法解析和语法解析流程

postgresql 词法解析语法解析流程

孤傲小二~阿沐的博客 5448

PTA 团体程序设计天梯赛-练习集 L2-014 列车调度(set,贪心)

两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。} 的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?这道题的意思是某一些列车进入到了中间过渡阶段铁轨的时候可以停在那里,然后等待调度。在一行中输出可以将输入的列车按序号递减的顺序调离所需要的最少的铁轨条数。就去找一个最接近的并且然当前车排到那辆车后面,如果没有就必须另开一条道。,下一行给出从1到N的整数序号的一个重排列。火车站的列车调度铁轨的结构如下图所示。

2302_79440616的博客 359

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ACM天梯赛 L2-014. 列车调度

L2-014. 列车调度 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 火车站的列车调度铁轨的结构如下图所示。 Figure 两端分别是一条入口(Entrance)轨道和一条出口(Exit

overload1997 1034

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

团体程序设计天梯赛 L2 题目合集

目前 L1 的题目已经刷完,打算在赛前刷完 L2 的题目。本来想 L2 的题目都写个相对详细的题解的,但是由于时间已经很紧张了,就只能像来记录 L1题目的形式来 L2 的题解了,让我们都好好加油吧。

Veggie的博客 1万+

L2-014 列车调度

这道题分析清楚后很容易想到set集合,set集合的特性是不会出现重复的内容,并且会将存入的数据按顺序排列。在分析中,我们存入set集合中的颜色代表每一条轨道上列车编号最小的那个元素,存入set集合的个数就代表轨道的数量。,不能放入当前这条轨道(否则无法保证按递减顺序出栈),所以需要新开一条轨道,把。,此时没有已占用的平行轨道,所以为它新开一条轨道(相当于新建一个栈),把。,都不能放入现有的轨道,于是再新开一条轨道,把。,不能放入现有的轨道,再新开一条轨道,把。,同样可以放入这条轨道,将。

z_y_j229970438的博客 548

【PAT L2-014】列车调度(Dilworth定理)

【PAT L2-014】列车调度(Dilworth定理) L2-014. 列车调度 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 火车站的列车调度铁轨的结构如下图所示。 Fig

ACMer' 4575
上一篇: 【L2-016 愿天下有情人都是失散多年的兄妹】
下一篇: 天梯赛:L2-017 人以群分
树上的一枝
博客等级 码龄3年 39粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值