概述
思路:要实现输出很简单,关键是时间的限制,当时提交了很多次,一直是超时,后来改用二分法,才交上去。
#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
最后
以上就是高高鸡为你收集整理的列车调度(队列实现)的全部内容,希望文章能够帮你解决列车调度(队列实现)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复