codevs2821 天使之城

2022-02-13 12:30:16 字數 1616 閱讀 6809

時間限制: 1 s

空間限制: 128000 kb

題目等級 : ** gold

天使城有乙個火車站,每輛火車都從a方向駛入車站,

再從b方向駛出車站。

為了排程火車,火車站設有停放軌道,可存放5輛火車。已知從a進入車站順序為1、2、3……。現在給你乙個排程方案,判斷是否可行,如果可行,輸出出站順序。

有以下幾種排程方法:

a. 將a上的頭一輛車駛出b方向

b. 將a上的頭一輛車停入暫停軌道

c. 將暫停軌道上最外面的車駛出b方向

輸入描述 input description

輸入第一行乙個整數n(n<30)表示排程方案步驟數目。

下一行乙個字串,有n個大寫字母,表示排程方法。

輸出描述 output description

輸出若不可行(暫停站滿了還停車、暫停站空了還出車),則輸出一行「no」。

若可行,輸出一行「yes」,再輸出若干行,每行乙個整數,表示車出站序列。

樣例輸入 sample input

[樣例輸入1]

6abbcca

[樣例輸入2]

5bacac

樣例輸出 sample output

[樣例輸出1]

yes132

4[樣例輸出2]

no資料範圍及提示 data size & hint

如題【思路】

模擬棧【code】

#include#include

using

namespace

std;

int cnt,wait[50],station[50],ans[50

],tot,num,n;

char od[50

];int

main()

if(od[i]=='b'

)

wait[++num]=++cnt;

}if(od[i]=='c'

)

ans[++tot]=wait[num];

num--;}}

printf(

"yes\n");

for(int i=1;i<=tot;i++)

printf(

"%d\n

",ans[i]);

return0;

}

一年後寫的另乙份**20180717

#include#include

#include

using

namespace

std;

int n,t1,t2,now,sta[11],ans[11

];string

s;int

main()

else sta[++t2]=now++;

if(s[i]=='

c')if(t2==0

)else ans[++t1]=sta[t2--];

}printf(

"yes\n");

for(int i=1;i<=t1;i++)printf("

%d\n

",ans[i]);

return0;

}

codevs 2821 天使之城

題目描述 description 天使城有乙個火車站,每輛火車都從a方向駛入車站,再從b方向駛出車站。為了排程火車,火車站設有停放軌道,可存放5輛火車。已知從a進入車站順序為1 2 3 現在給你乙個排程方案,判斷是否可行,如果可行,輸出出站順序。有以下幾種排程方法 a.將a上的頭一輛車駛出b方向 b...

9106 天使的起誓

time limit 10 second memory limit 2 mb 問題描述 tenshi非常幸運的被選為掌管智慧型之匙的天使。在正式任職之前,她必須和其他新當選的天使一樣,要宣誓。宣誓儀式是每位天使各自表述自己的使命,她們的發言稿被放在n個呈圓形排列的寶盒中。這些寶盒按順時針方向被編上號...

七天使的通訊

題目描述 n個天使排成一條直線,某些天使之間需要互相聯絡,他們之間的通訊可以通過黑白兩種通道中的一種 所有通道必須在直線同側 另一側是地面 為了保證通訊效率,同種顏色的所有通道之間不能相交。請計算能否建立這種通訊方案。輸入 第一行乙個數t,表示接下來有t個詢問。對於每個詢問 第一行兩個數n,m,分別...