time limit: 1 sec
memory limit: 128 mb
submit: 121
solved: 33 [
submit][
status][
web board]
你有乙個奇怪的資料結構,他可能是棧(stack),佇列(queue),優先佇列(priority_queue),或者其他什麼奇怪的東西。
假設有n個元素依次進入這個資料結構,並且知道這些元素出去的順序,你能告訴我這個資料結構是什麼嗎?
輸入包括多組測試資料,每組測試資料的第一行為乙個正整數n(1<=n<=1000),第二行包括n個整數代表進入的順序,第三行也有n個整數代表出去的順序。
對於每組測試資料,輸出可能的資料結構名字。如果有多個資料結構滿足,則按順序輸出。若沒有資料結構滿足,則輸出「none」。3
1 2 3
1 2 3 3
1 2 1
1 2 1
queue priority_queue
stack queue
【解析】
此題的話需要知道優先佇列是怎麼輸出的有兩種輸出可以自定義,先讓小的元素先輸出,另一種是讓大的元素先輸
出,然後我們直接模擬就好了我是把所有的可能性都列舉出來了。
#include#include#include#include#includeusing namespace std;
vectora,b;
bool cmp(int a,int b)
int main()
; int d[1010]=;
a.clear();
b.clear();
for(i=0;ifor(i=0;isort(c,c+n);
for(i=0;iif(count==n)//優先佇列
flag1=1;
count=0;
for(i=0;iif(count==n)
flag2=1;//佇列
count=0;
for(i=0;iif(count==n)
flag3=1;//棧
sort(c,c+n,cmp);
count=0;
for(i=0;iif(count==n)
flag4=1;
if((flag1==1||flag4==1)&&flag2==1&&flag3==0)
else if((flag1==1||flag4==1)&&flag2==0&&flag3==0)
else if((flag1==1||flag4==1)&&flag2==1&&flag3==1)
else if(flag1==0&&flag2==0&&flag3==0&&flag4==0)
else if(flag1==0&&flag4==0&&flag2==0&&flag3==1)
else if(flag1==0&&flag4==0&&flag2==1&&flag3==0)
else if((flag1==1||flag4==1)&&flag2==0&&flag3==1)
else if(flag1==0&&flag2==1&&flag3==1&&flag4==0)
}return 0;
}
資料結構 資料結構緒論
資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...
資料結構 資料結構演算法
分治法 對於乙個規模為n的問題,若該問題可以容易地解決 比如說規模n較小 則直接解決 否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。動態規劃法 這種演算法也用到了分治思想,它的做法是將問題例項分解為更小的 相似的子...
資料結構 01 資料與資料結構
1.資料data 資料是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。2.資料元素data elements 資料元素是組成資料的 有一定意義的基本單位,在計算機中通常作為整體進行處理。3.資料物件data object 資料物件是性質相同的資料元素的...