列车调度问题[通俗易懂]

列车调度问题[通俗易懂]题目:高铁货运站的调配问题我们国家大力发展道路交通基础设施,最近这些年修建了大量的高铁线路,以促进国内的物资运输和调配,ZZ是一个超级货运站,是连接亚欧货运的枢纽站,现在ZZ货运站列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

题目:高铁货运站的调配问题

我们国家大力发展道路交通基础设施,最近这些年修建了大量的高铁线路,以促进国内的物资运输和调配,ZZ是一个超级货运站,是连接亚欧货运的枢纽站,现在ZZ货运站列车调度铁轨的结构如下图所示。

 

                                                                             列车调度问题[通俗易懂]

 

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

【输入格式】:

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

【输出格式】:

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

【输入样例】:

9

8 4 2 5 3 9 1 6 7

【输出样例】:

4

1)题目分析: 此题为 ‘’求最少下降序列个数‘’的问题

要让列车降序输出,每一条轨道上必须编号大的先进入,编号小的后进入,所以每一条轨道上的列车是下降序列。如果待处理的列车编号比一条轨道上的最小编号要大,那么就要新开一条轨道让该车进入。

如果输入的列车编号是一个上升序列,那么需要的轨道条数就等于上升序列的个数。

样例中:

各条轨道应为:

————————————8 4 2 1

————————————5 3

————————————9 6

————————————7

2)解题方法思路:

a[i] 存储第i 下降序列 末尾的最小值

二分法:快速查找与待处理元素最相近的 下降序列 末尾元素,并更新元素

3)代码:

#include<stdio.h>
#include<stdlib.h>

int a[100001]; //存储每条轨道最后的数 

int main(){
	int n,m; //n为输入的数据个数,m做临时存储 
	int k=1; //k为轨道数,并初始化为1 
	scanf("%d\n",&n);
	scanf("%d",&m);
	a[1]=m;//初始化a[1] 
	for(int i = 1;i < n; i++){
		scanf("%d",&m);
		if(m>a[k]){//比a中最大数还大,就增加一条轨道 
			k++;
			a[k] = m;
		}
	
		else{ //二分法查找到a中与m最相近的值,然后更新那条轨道上的末尾的数 
			int l = 1;
			int r = k;
			
			while(l<=r){
				int mid = (l+r)/2;
				if(m>=a[mid]){
					l++;
				}
				else{
					r--;
				}
			}
			a[l] = m;
		}
		
	}
		
	printf("%d",k); //打印轨道数k 
	
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159393.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月26日 下午1:16
下一篇 2022年7月26日 下午1:16


相关推荐

  • 职称计算机模块intern,职称计算机考试模块试题.pdf

    职称计算机模块intern,职称计算机考试模块试题.pdf职称计算机考试模块试题职称计算机考试WORD模块试题2008-02-0819:12职称计算机考试,找点题目看看,也不知道是不是就考这些,顺便给大家分享分享.1、新建一word文档,将Windows剪贴板上的内容粘贴到该Word文档中。2、保存当前文档的版本(不输入版本的备注),并设置关闭文档时自动保存版本。3、请用文档结构图显示当前文档,并设置为蓝底白字。4、请将WORD…

    2022年6月2日
    32
  • 【SQL Server】网上购物商城数据库设计报告(专业课设作品附上sql文件文档)

    【SQL Server】网上购物商城数据库设计报告(专业课设作品附上sql文件文档)目录一 需求分析 1 1 背景 1 2 数据需求 1 3 事物需求 1 4 数据流程图二 概念结构设计 2 1E R 图三 关系模式 3 2 数据逻辑结构四 物理结构设计 4 1 建立一个数据库 4 2 建立八张表 4 3 建立表的连接五 系统功能的实现 5 1 数据库建立 5 2 创建立数据表 5 3 建立表连接 5 4 数据初始 5 4 1 管理員初姶化 5 4 2 添加商品組信息 5 4 3 在各商品組加入商品 5 4 4 添加注册会員信息 5 4 6 添加枚限信息 5 4 7 添加管理员权限信息 5 5 查询 5 5 1 查询本站有哪些种类的商

    2025年10月25日
    6
  • HTML和CSS面试题及答案总结一

    HTML和CSS面试题及答案总结一对于html的语义化标签的理解,结构化标签的理解,同时写出简洁的html结构,如何进行SEO优化?答:对于html的语义化标签,用正确的标签做正确的事情。html语义化,让页面的内容结构化,便于对浏览器和搜索引擎的解析,在没有css样式的情况下,以文档的形式同样易于阅读,符合文档语义的标签。标签本身所代表的语义,每一个标签所带有的语义,根据语义去使用标签,依赖标记确定权重,同时也可以提高SE…

    2022年5月10日
    49
  • 平衡二叉树与红黑树的区别_平衡二叉树怎么构造

    平衡二叉树与红黑树的区别_平衡二叉树怎么构造平衡二叉树与红黑树一、红黑树的性质:二、红黑树的主要用途,和其他树的比较:三、运用场景一、红黑树的性质:  红黑树是一颗二叉搜索树,通过对任何一条从根到叶子的简单路径上各个结点的颜色进行约束,红黑树确保没有一条路径会比其他路径长出2倍,因而是近似于平衡的。  树的每个结点包含5个属性,color,key,left,right,p。如果一个结点没有子结点或父结点,则该结点的响应指针属性的指为…

    2022年10月21日
    5
  • C语言实现【关机程序】「建议收藏」

    C语言实现【关机程序】「建议收藏」在讲解关机程序前,必须得先知道一个库函数system(“shutdown-s-t60”)和system(“shutdown-a),其中“shutdown-s”表示关机,“shutdown-a”表示取消关机,“-t60”表示延迟60秒;而要使用该库函数就得引头文件#include<stdlib.h>。下面开始实现关机程序了:#include<stdio.h>#include<stdlib.h>#include<string.h>int.

    2022年7月22日
    11
  • UiAutomator Android 的自动测试框架(基础)「建议收藏」

    UiAutomator Android 的自动测试框架(基础)「建议收藏」</pre>很久没更新博客了,今天至后期的一段时间将带给大家的是<spanstyle=”font-family:微软雅黑;font-size:14px;line-height:21px;widows:auto;”>UiAutomatorandroid的自动测试框架,一系列的介绍,希望大家喜欢。</span><p></p…

    2022年10月18日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号