两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

Dotcpp  >  編程題庫(kù)  >  車(chē)廂調(diào)度(train)
題目 3075:

車(chē)廂調(diào)度(train)

時(shí)間限制: 2s 內(nèi)存限制: 192MB 提交: 46 解決: 23

題目描述

有一個(gè)火車(chē)站,鐵路如圖所示,每輛火車(chē)從A駛?cè)耄購(gòu)腂方向駛出,同時(shí)它的車(chē)廂可以重新組合。假設(shè)從A方向駛來(lái)的火車(chē)有n節(jié)(n≤1000),分別按照順序編號(hào)為1,23,…,n。假定在進(jìn)入車(chē)站前,每節(jié)車(chē)廂之間都不是連著的,并且它們可以自行移動(dòng)到B處的鐵軌上。另外假定車(chē)站C可以停放任意多節(jié)車(chē)廂。但是一旦進(jìn)入車(chē)站C,它就不能再回到A方向的鐵軌上了,并且一旦當(dāng)它進(jìn)入B方向的鐵軌,它就不能再回到車(chē)站C

車(chē)廂調(diào)度(train)

負(fù)責(zé)車(chē)廂調(diào)度的工作人員需要知道能否使它以a1,a2,…,an的順序從B方向駛出,請(qǐng)來(lái)判斷能否得到指定的車(chē)廂順序。

輸入格式

第一行為一個(gè)整數(shù)n,其中n≤1000,表示有n節(jié)車(chē)廂,第二行為n個(gè)數(shù)字,表示指定的車(chē)廂順序。

輸出格式

如果可以得到指定的車(chē)廂順序,則輸出一個(gè)字符串“YES”,否則輸出“NO”(注意要大寫(xiě),不包含引號(hào))。

樣例輸入

5
5 4 3 2 1

樣例輸出

YES

提示

解析:觀察發(fā)現(xiàn),整個(gè)調(diào)度過(guò)程其實(shí)是在模擬入棧出棧的過(guò)程,而這個(gè)過(guò)程中,我們可以分成三種狀態(tài):棧前、棧中、棧后。我們可以發(fā)現(xiàn),當(dāng)某個(gè)數(shù)字出棧了,說(shuō)明比它小的數(shù)字要么已經(jīng)出棧了,要么還在棧里,不能是入棧前狀態(tài),并且在棧中的順序是從大到小的(從棧頂往棧底看),比如出5,那么1,2,3,4要么已經(jīng)在5之前出了,要么還在棧中(假如1,3,4在棧中,從棧頂往棧底看依次為4,3,1),不能是入棧前的狀態(tài)。如果某個(gè)數(shù)字要出棧,那么當(dāng)前在棧中的數(shù)字都必須小于它,否則就與棧的性質(zhì)矛盾,不合法,于是我們可以這樣解決:

從第一個(gè)數(shù)字開(kāi)始掃描,a[i]表示當(dāng)前出棧的數(shù)字,如果有比a[i]大的數(shù)字還在棧中,那么就產(chǎn)生矛盾,輸出“NO”;否則,標(biāo)記當(dāng)前數(shù)字a[i]為棧后狀態(tài),那么[1, a[i]-1]這些數(shù)字如果還沒(méi)出棧,標(biāo)記為棧中狀態(tài)。具體我們可以用0表示為確定狀態(tài),1表示棧中狀態(tài),2表示棧后狀態(tài)。

標(biāo)簽