火車站的列車排程鐵軌的結構如下圖所示。
兩端分別是一條入口(entrance)軌道和一條出口(exit)軌道,它們之間有n條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最後從出口離開。在圖中有9趟列車,在入口處按照的順序排隊等待進入。如果要求它們必須按序號遞減的順序從出口離開,則至少需要多少條平行鐵軌用於排程?
輸入第一行給出乙個整數n (2 ≤ n ≤10^5 ),下一行給出從1到n的整數序號的乙個重排列。數字間以空格分隔。
在一行中輸出可以將輸入的列車按序號遞減的順序調離所需要的最少的鐵軌條數。
984
2539167
4
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
#define true 1
#define false 0
#define ok 1
#define error 0
#define infeasible -1
#define overflow -2
typedef
int position;
typedef
int elementtype;
struct qnode
;typedef
struct qnode *queue;
queue createqueue
(int maxsize)
bool
isfull
(queue q)
bool
addq
(queue q, elementtype x)
else
}bool
isempty
(queue q)
elementtype deleteq
(queue q)
else
}//判斷當前隊內是否有比該車號小的元素
bool
ifless
(elementtype , queue)
;//二分查詢
void
binarysearch
(int*,
int,
int)
;#define maxnum 100005
intmain()
int track[maxnum]=;
int t_num =0;
track[t_num++]=
deleteq
(q);
while(!
isempty
(q))
else
if(tmp < track[t_num -1]
)}printf
("%d\n"
, t_num)
;return0;
}bool
ifless
(elementtype num, queue q)
return
true;}
void
binarysearch
(int
*track,
int tmp,
int t_num)
track[_end]
= tmp;
}
僅供參考 第三章 迴圈佇列及線性結構綜合
1 1 所謂 迴圈佇列 是指用單向迴圈鍊錶或者迴圈陣列表示的佇列。1分 ff 將向量空間想象為乙個首尾相接的圓環,並稱這種向量為迴圈向量。儲存在其中的佇列稱為迴圈佇列 circular queue 這種迴圈佇列可以以單鏈表的方式來在實際程式設計應用中來實現。因此,迴圈佇列是乙個抽象的資料結構,而單向...
第三章作業
1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 2.程式設計求 百錢百雞 問題。雞翁一值錢五,雞母 一值錢三,雞雛三值錢一。百錢買百雞,問雞翁 雞母 雞雛各幾何?3.程式設計輸入乙個整數,計算它是幾位數字,分別輸出每一位數字,並輸出各個數...
第三章作業
第三章作業 習題5,求e的近似值 求自然對數e的近似值 includeusing namespace std int n return a int main cout 習題6 求圓周率 求圓周率的近似值 include includeusing namespace std int main cout...