ZCMU 1880 wjw的火車站 棧

2021-08-21 20:22:06 字數 2186 閱讀 2186

time limit: 1 sec  memory limit: 128 mb

wjw最近新開了一座火車站...沒錯就是火車站,因為寒假過完同學們都該返校了,所以他準備大幹一場,但是這裡有乙個問題,因為wjw的資金不足,所以這座火車站只有一條鐵路,所有的火車從一側進入,從另一側出來,但是為了方便排程火車,所以wjw機智的修改了一下鐵路。如下圖,如果火車a首先進入鐵路,然後火車b在火車a離開之前進入鐵路,則火車a只有在火車b離開後才能離開。那麼現在問題來了,有一串火車按給定順序進入車站,wjw希望在通過他的一波操作使這列火車以另乙個順序開出火車站,但是他的智商並不支援他解決這個問題,所以你的任務是確定在給定進站順序和出站順序的情況下,給出排程操作。

輸入包含多組資料。每個測試資料報含乙個正整數n表示火車數,接下去的兩個序列表示進站順序和出站順序,火車編號為小寫或大寫字母,(a≠a)

輸出資料報含乙個字串「yes.」或「no.」,表示是否有可行的排程方案,若有,則輸出排程操作。

3 abc cba 

3 abc cab

case #1: yes.

inin

inout

outout

case #2: no.

向能**車站的富豪勢力低頭 ......好了,這題從其題目中可以看出,它本質上就是乙個棧的問題,站台是棧,入站的火車就入棧...,前次入站的火車必須要等後入站的火車先出站才能出站,模擬為棧內其他元素必須等棧頂元素出棧後才能依次出棧。因此大大方方用stl的stack吧。

我們知道這樣一列火車入站和出站是有兩種方式的,一種是入站後立即出站,另一種是入站後被之後入站的火車堵在裡面一會兒後再出站,因此我們不能直接將所有元素按題目輸入順序入棧完成後再乙個乙個出棧,而是需要在入棧進行的同時將棧頂元素與出棧序列比對,若對上了則出棧,沒對上則不出,讓下乙個元素入棧。因此我們可以在存好入站(棧)順序和出站(棧)順序後用兩個變數分別指向目前所判斷的入站火車和出站順序。

首先我們讓第一列火車進站,入站執行完成,指向該入站序號的變數加一,移到下乙個入站序號上。此時這列剛進站的火車後面沒有其它火車堵著(其為該棧的棧頂元素),之後直接開始用該火車(棧頂元素)與第乙個出站的火車序號(出棧序列)比對,若對上號則火車開走(出棧),並且該出站執行完成,指向出站序號的元素加一,指向下乙個出站序號。若號碼對不上,說明還沒到這列車出站的時候,我們讓下一列火車進站,再用此時最外面的火車(棧頂元素)與出站序號比對......如此迴圈下去。這裡還要強調一點:當一列火車出站後,我們其實可以繼續判斷下一列火車是否應當出站,迴圈判斷直到不能出站或是站台裡沒有火車,再進行下一列火車的入站。這樣省去了寫不少if的麻煩。我們還應該建立乙個陣列,專門儲存每次出入站操作。當所有入站指令執行完畢,並且不能再繼續執行出站指令,我們往車站裡看一眼,如果有火車還在(棧非空),說明不能繼續出站的原因是火車出站序列不合理,最外面的火車對不上號了,輸出no;如果車站空了,說明火車出站序列是合理的,輸出yes,再把剛剛記錄下的指令輸出出來即可。這博主是真滴囉嗦,還不上**

#include #include #include #include #include #include #include #include #include #include #include #include //#include //#define inf 0x3f3f3f3f

#define n 200000

using namespace std;

stackstation;

bool ops[2*n];

char in[n];

char out[n];

int n;

int main()

//如果車站不是空的並且最外面的火車對上號了,就出站,迴圈執行

while (!station.empty() && outi < n&&station.top() == out[outi])

}printf("case #%d: ", cases);

//如果車站空了,說明序列合理

//判斷棧是否空,若空返回true

if(station.empty())

}//如果還有火車留著,說明序列不合理

else printf("no.\n");

}return 0;

}

ZCMU 1880 wjw的火車站

wjw最近新開了一座火車站.沒錯就是火車站,因為寒假過完同學們都該返校了,所以他準備大幹一場,但是這裡有乙個問題,因為wjw的資金不足,所以這座火車站只有一條鐵路,所有的火車從一側進入,從另一側出來,但是為了方便排程火車,所以wjw機智的修改了一下鐵路。如下圖,如果火車a首先進入鐵路,然後火車b在火...

描寫火車站場景 關於描寫火車站的句子

關於描寫火車站的句子 關於描寫火車站的句子 所以至今,我仍很愛乘火車,臥鋪,靠在枕頭上看書,沉沉 睡去,聽鐵軌一層一層的蕩漾,在記憶中昏暗地穿行,如果我愛 誰,我們一定會乘火車去很遠的地方,一路都是風景,包括思考 時呈現出來的風景。有時候站在路邊看著人來人往,會覺得城市比沙漠還要荒涼。每個人都靠的那...

zcmu Problem H wjw的火車站

題目 time limit 1 sec memory limit 128 mb submit 112 solved 59 submit status web board wjw最近新開了一座火車站.沒錯就是火車站,因為寒假過完同學們都該返校了,所以他準備大幹一場,但是這裡有乙個問題,因為wjw的資金...