給定乙個最大容量為 m 的堆疊,將 n 個數字按 1, 2, 3, …, n 的順序入棧,允許按任何順序出棧,則哪些數字序列是不可能得到的?例如給定 m=5、n=7,則我們有可能得到,但不可能得到。
輸入格式:
輸入第一行給出 3 個不超過 1000 的正整數:m(堆疊最大容量)、n(入棧元素個數)、k(待檢查的出棧序列個數)。最後 k 行,每行給出 n 個數字的出棧序列。所有同行數字以空格間隔。
輸出格式:
對每一行出棧序列,如果其的確是有可能得到的合法序列,就在一行中輸出yes,否則輸出no。
輸入樣例:
5 7 5
1 2 3 4 5 6 7
3 2 1 7 5 6 4
7 6 5 4 3 2 1
5 6 4 3 7 2 1
1 7 6 5 4 3 2
輸出樣例:
yesno
noyes
no這道題的演算法思路就是讓我們模擬棧的儲存情況,所以我們可以直接呼叫c++stl庫里的棧來模擬。
#include
#include
#include
using
namespace std;
intmain()
for(i=1;
!q.empty()
&&s.
size()
if(s.
empty()
)//如果棧剛好為空,則證明可以得到這樣乙個序列
cout<<
"yes"
cout<<
"no"
<}return0;
}
PTA 天梯賽訓練 L2 005 集合相似度
給定兩個整數集合,它們的相似度定義為 nc n t 100 其中nc是兩個集合都有的不相等整數的個數,n t是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入格式 輸入第一行給出乙個正整數n 50 是集合的個數。隨後n行,每行對應乙個集合。每個集合首先給出乙個正整數m...
PTA團體程式設計天梯賽 練習集L1 027 出租
輸入在一行中給出乙個由11位數字組成的手機號碼。輸出格式 為輸入的號碼生成 的前兩行,其中arr中的數字必須按遞減順序給出。輸入樣例 18013820100輸出樣例 int arr new int int index new int 如下 include include using namespac...
PTA 天梯賽 L3 013 非常彈的球
l3 013 非常彈的球 30分 剛上高一的森森為了學好物理,買了乙個 非常彈 的球。雖然說是非常彈的球,其實也就是一般的彈力球而已。森森玩了一會兒彈力球后突然想到,假如他在地上用力彈球,球最遠能彈到多遠去呢?他不太會,你能幫他解決嗎?當然為了剛學習物理的森森,我們對環境做一些簡化 森森為你準備的公...