我是靠谱客的博主 高高鸡,最近开发中收集的这篇文章主要介绍列车调度(队列实现),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

思路:要实现输出很简单,关键是时间的限制,当时提交了很多次,一直是超时,后来改用二分法,才交上去。

#include<stdio.h>
#include<iostream>
using namespace std;
typedef struct
{
int *base;
int font;
int rear;
} SqQueue;
void InitQueue(SqQueue& L)
{
L.base=new int[100010];
L.font=0;
L.rear=0;
}
void SqSearch(SqQueue& L, int m)
{
int r,f,mid;
f=L.font;
r=L.rear;
while(f<r)
{
mid=(r-f)/2+f;
if(L.base[mid]>m)r=mid;
else if(L.base[mid]<m)f=mid+1;
}
L.base[r]=m;
}
void EnQueue(SqQueue& L,int m)
{
int length=L.rear-L.font;
if(length==0)
{
L.base[0]=m;
L.rear++;
}
else
{
if(m>L.base[L.rear-1])
{
L.base[L.rear]=m;
L.rear++;
}
else
SqSearch(L,m);
}
}
int main()
{
SqQueue L;
InitQueue(L);
int n,m;
scanf("%d",&n);
for(int i=0; i<n; i++)
{
scanf("%d",&m);
EnQueue(L,m);
}
printf("%d",L.rear-L.font);
return 0;
}

 

转载于:https://www.cnblogs.com/suppercobweb/p/7724359.html

最后

以上就是高高鸡为你收集整理的列车调度(队列实现)的全部内容,希望文章能够帮你解决列车调度(队列实现)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部