首页 > 其他分享 >7-1 列车调度

7-1 列车调度

时间:2022-09-25 20:22:37浏览次数:40  
标签:列车 int 铁轨 调度 len 轨道

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

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

输入样例:
9
8 4 2 5 3 9 1 6 7
输出样例:
4
解题思路:
每趟列车出列时选择(最后一趟列车编号大于自身编号且最小)的轨道进入,可以采用二分法快速查找。
解题代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[n],len=0;
    int t;
    for(int i=0;i<n;i++)
    {
        cin>>t;
        if(len==0||a[len-1]<t)
        {
            a[len]=t;
            len++;
        }
        else
        {
            int left=0,right=len-1;
            while(left<right)
            {
                int mid;
                mid=(left+right)/2;
                if(a[mid]>t)
                {
                    right=mid-1;
                }
                else
                {
                    left=mid+1;
                }
            }
            a[left]=t;
        }
    }
    cout<<len;
    return 0;
}

标签:列车,int,铁轨,调度,len,轨道
From: https://www.cnblogs.com/link-way/p/16728704.html

相关文章

  • .NET Core项目使用Quartz实现简单的调度任务
    创建一个.NETCore3.1控制台应用程序。引入项目所需的依赖:dotnetaddpackageUnitydotnetaddpackageQuartzdotnetaddpackageMicrosoft.EntityFrameworkCore3......
  • 拆解一下任务队列、消息队列、任务调度系统
    最近调研了下任务调度系统中间件,包括xxl-job、elastic-job等,发现跟任务队列有一些类似的能力,比如通过API(事件)触发任务执行。随即想到,能否用任务调度系统覆盖任务队列的场......
  • 搜狗workflow异步调度框架
    搜狗workflow异步调度框架参考https://www.zhihu.com/column/c_1456603443661643776来源 https://zhuanlan.zhihu.com/p/172485495虽然我更新本博客比较慢,但是github......
  • python 时间调度
    Prerequisite主要分为两个:查看时间任务调度查看时间fromdatetimeimportdateimporttimelocaltime=time.asctime(time.localtime(time.time())).split('')[......
  • 【base】调度时机
    调度时机单核模式下,RTOS允许高优先级任务被唤醒的时候立即得到执行我们之前在Linux的时候得到的结论是,高优先级任务挂到就绪队列上了,但是并不一定能够马上得到执行的,还是......
  • BM96 主持人调度(二)
    描述有n 个活动即将举办,每个活动都有开始时间与活动的结束时间,第i 个活动的开始时间是starti ,第i 个活动的结束时间是endi ,举办某个活动就需要为该活动准备......
  • Linux-->定时任务调度
    crond任务调度概述指定系统在某个时间执行特点的命令或程序。任务调度分类:系统工作:有些重要的工作需要周而复始的重复执行,如病毒扫描等。个别用户工作:个别用户可能......
  • Linux调度系统全景指南(上篇)
    导语:本文主要是讲Linux的调度系统,由于全部内容太多,分三部分来讲,调度可以说是操作系统的灵魂,为了让CPU资源利用最大化,Linux设计了一套非常精细的调度系统,对大多数场景都进......
  • Pod资源调度
    APIServer接受客户端提交Pod对象创建请求后的操作过程中,有一个重要的步骤是由调度器程序(kube-scheduler)从当前集群中选择一个可用的最佳节点来接收并运行它,通常是默认......
  • Spark任务调度机制【转】
    Spark任务调度机制论述在生产环境下,Spark集群的部署方式一般为YARN-Cluster模式。Driver线程主要是初始化SparkContext对象,准备运行所需的上下文,然后一方面保持与Applica......