L2 032 彩虹瓶 (25 分

2021-09-16 21:34:04 字數 1143 閱讀 3872

題目鏈結

題目大意:彩虹瓶有n層,必須按照1,2,3…n的順序堆放小球。假設現在需要編號為m的小球,此時送來的恰好是m,則繼續判斷m+1層;若不是,如果此時貨架上有小球,並且頂層就是m號,則繼續判斷m+1層。若不是,如果貨架上還能放小球,則放小球,否則無法成功製作彩虹瓶。

思路:利用堆疊進行模擬。

提交**:

#include

using namespace std;

intmain()

int ok=

1, a=

1,b=1;

stack<

int>s;

while

(a<=n)

elseif(

!s.empty()

&&s.

top(

)==a)

else

if(s.

size()

else}if

(ok)cout<<

"yes"

"no"

<}return0;

}

帶注釋**:

#include

#include

#include

#include

using namespace std;

intmain()

int ok=

1, a=

1,b=1;

stack<

int>s;

//注意b的範圍,凡是用到v[b]的,都得先判斷b的下標

while

(a<=n)

//送來的正好等於需要的

elseif(

!s.empty()

&&s.

top(

)==a)

//棧頂元素正好是所需要的

else

if(s.

size()

//棧沒滿,往棧裡面放

else

//無法按照序列輸出}if

(ok)cout<<

"yes"

"no"

<}return0;

}

L2 032 彩虹瓶 (25 分

彩虹瓶的製作過程 並不 是這樣的 先把一大批空瓶鋪放在裝填場地上,然後按照一定的順序將每種顏色的小球均勻撒到這批瓶子裡。假設彩虹瓶裡要按順序裝 n 種顏色的小球 不妨將順序就編號為 1 到 n 現在工廠裡有每種顏色的小球各一箱,工人需要一箱一箱地將小球從工廠裡搬到裝填場地。如果搬來的這箱小球正好是可...

L2 032 彩虹瓶 25 分

彩虹瓶的製作過程 並不 是這樣的 先把一大批空瓶鋪放在裝填場地上,然後按照一定的順序將每種顏色的小球均勻撒到這批瓶子裡。假設彩虹瓶裡要按順序裝 n 種顏色的小球 不妨將順序就編號為 1 到 n 現在工廠裡有每種顏色的小球各一箱,工人需要一箱一箱地將小球從工廠裡搬到裝填場地。如果搬來的這箱小球正好是可...

L2 032 彩虹瓶 25分

彩虹瓶的製作過程 並不 是這樣的 先把一大批空瓶鋪放在裝填場地上,然後按照一定的順序將每種顏色的小球均勻撒到這批瓶子裡。假設彩虹瓶裡要按順序裝 n 種顏色的小球 不妨將順序就編號為 1 到 n 現在工廠裡有每種顏色的小球各一箱,工人需要一箱一箱地將小球從工廠裡搬到裝填場地。如果搬來的這箱小球正好是可...