单机调度问题贪心算法

#题目:火车站的列车调度铁轨的结构如下图所示。

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

输入格式:

输入第一行给出一个整数N?(2?≤?N?≤10000),下一行给出从1到N的整数序号的一个重排列。数字间以空格分隔。

输出格式:

在一行中输出可以将输入的列车按序号递减的顺序调离所需要的最少的铁轨条数。

输入样例:

9
8 4 2 5 3 9 1 6 7

输出样例:

4

#最初做的时候认为一条轨道只能停留一辆火车,还以为答案错了—_—

#此题对于使用贪心的理解:

我们需要尽量减少加轨道条数,也就是新的火车最好能到一条路线的末尾排着,而为了之后的顺序输出,一条轨道上后面的车需要比前面的编号小,这就产生了选择问题。选择时可以归结出以下逻辑:

选择时要减少轨道条数,增加轨道条数的条件是需要进入的火车大于所有链尾序号,所以为了减小这个条件的成立可能性,就需要使每条轨道尽量多地容纳。举个例子,比如我们现在有两条轨道,轨道上的链尾为轨道一:5号,轨道二:8号,我们需要插入4号车,如果将4号插入轨道二,轨道二上4到8之间的插入可能性就被夺取了,同等条件下,将4号插入5号,相当于没有夺取其他任何可插入的可能性。而我们的目的就是增大可以不加轨道条数的可能性(等价于增大链尾能插入的可能性,又等价于增大链尾能插入的数量),所以需要做的是将新的元素插入到与这个元素序号差别最小的链尾。

#使用贪心策略将火车排入轨道后一定能顺序排出,故不需要考虑排出。

#处于效率考虑,需进行一些逻辑的处理。比如,整个过程是没有必要遍历的,我们从第一个轨道开始,其实相当于划分了轨道上序号的范围,由于序号没有重复的,第二个轨道的序号永远会比第一个轨道大。运用这个规律,只要判定最后一条轨道的链尾序号与需插入的相比,就可以确定是否需要建立新轨道。如果不需要建立新轨道,插入的轨道就是从第一条开始遇到的第一个可以插入的轨道。

#代码实现1(二分):

#includeconst int maxn=1e5+5; int main(){ int n; int a[maxn]; scanf("%d",&n); int k, len=0; while(n--){ scanf("%d",&k); if(len==0||a[len-1]k) r=mid-1; else l=mid+1; } a[l]=k; } } printf("%d",len); return 0; } 

#代码实现2:

#include#include#includeint n; int che[100001]; //che[]用于储存链尾序号 int N; int count =1; int foun(int n) { if(n>che[count]) return 0; if(nche[count-1]) return count; for(y=1;y<=count;y++) if(n

列车调度(贪心):单机调度问题贪心算法相关推荐

  1. 【CCCC】L2-014 列车调度 (25分),贪心,set维护序列

    problem L2-014 列车调度 (25分) 火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入 ...

  2. 天梯赛L2-014 列车调度(set和简单贪心)

    题目描述 火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道. 每趟列车从入口可以选择任意一条轨道进入,最后从出口离 ...

  3. AcWing 122. 糖果传递【贪心】【《算法竞赛进阶指南》,微软面试题 , HAOI2008】

    AcWing 122. 糖果传递 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 AcWing 122. 糖果传递 进阶题目 AcWing 105 ...

  4. 机器学习笔记之深度信念网络(三)贪心逐层预训练算法

    机器学习笔记之深度信念网络--贪心逐层预训练算法 引言 回顾:深度信念网络的结构表示 回顾: RBM \text{RBM} RBM叠加思想 贪心逐层预训练算法 引言 上一节介绍了深度信念网络模型的构建 ...

  5. 基于贪心法及其改进算法求解旅行商问题(附代码)

    旅行商问题 TSP (Traveling Salesman Problem)又称旅行推销员问题是指对于给 定的 n 个城市旅行商从某一城市出发不重复地访问其余每一城市后回到出发的城市 寻找一条使总旅行 ...

  6. 贪心算法的全部讲解(贪心选择性和贪心子结构)

    贪心算法 贪心算法的基本概念 贪心算法的适用范围 贪心算法的设计步骤 贪心算法的题目讲解 贪心算法的基本概念 贪心算法与枚举法的不同之处在于每个子问题都选择最优的情况,然后向下继续进行,且不能回溯,枚 ...

  7. PTA 一 列车调度

    火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道进入,最后从出口离开.在图中有 ...

  8. 5-10 列车调度 (25分)

    5-10 列车调度 (25分) 火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨 ...

  9. java加权区间调度_区间调度问题详解

    今天给大家介绍一下区间调度问题.区间调度是一类难度比较大,但同时应用比较广的问题,经常会在面试中以各种形式出现.本文将会介绍区间调度的各种变形,希望能使大家在面临区间调度问题时得心应手,并可以在实际工 ...

最新文章

  1. Thinking in UML 学习笔记(四)——UML活动图来看核心
  2. 进程通信学习笔记(Posix消息队列)
  3. PyTorch 可视化工具 TensorboardX
  4. php 修改css 不生效,HTML外部引用CSS文件不生效原因分析及解决办法
  5. ROS机器人导航仿真(kinetic版本)
  6. mysql filck_顺序全局id生成方案-flickr(转载)
  7. 可视化分析:洞见数据的秘诀
  8. Android上SQLite的性能优化问题
  9. BlackBerry模拟器中文转换
  10. java加密算法之MD5篇
  11. Windows 电源计划设置关闭显示器不起作用的解决方法
  12. spring配置事务
  13. 社会生活中的著名法则- -
  14. 苹果为M1 MacBook Air/Pro提供自助维修服务 维修成本更低
  15. 2007年12月全球十大搜索引擎
  16. 寻仙手游服务器无响应,寻仙手游进不去解决方法 寻仙手游怎么玩不了
  17. 时尚宜家,磊科高档简约路由器NW717
  18. (自适应手机端)极致CMS居家用品纸盘纸盒纸杯卫生纸巾生产网站模板
  19. flex弹性布局教程-10容器属性justify-content
  20. 工厂MES系统用Java写还是_制造企业都能使用MES系统吗?

热门文章

  1. WPF教程UpdateSourceTrigger属性
  2. Windows7 IP地址切换器
  3. 低秩表达的简单通俗化理解
  4. 拆卸U2000服务器注意事项
  5. IntelliJ IDEA 2018.3 汉化包
  6. ADS使用技巧/debug
  7. oracle 11g 卸载oem,OpenSUSE下oracle11gR2的安装卸载
  8. Microsoft Office SharePoint Server 2007的文件目录结构
  9. C++中typedef的用法
  10. Linux 监控命令