T4308 資料結構判斷

2021-09-07 11:02:53 字數 1609 閱讀 8360

在世界的東邊,有三瓶雪碧。

——laekov

黎大爺為了虐 zhx,給 zhx 出了這樣一道題。黎大爺搞了乙個資料結構,但

是他沒有告訴 zhx 這到底是什麼資料結構,我們只知道這是乙個資料結構。為了

讓 zhx 知道這是什麼資料結構,黎大爺製造了很多次的輸入和輸出操作。每次加

入操作,黎大爺會告訴你他向這個資料結構加入了乙個數並告訴你這是多少;每

次取出操作,黎大爺會從資料結構之中取出乙個數並告訴這是多少。黎大爺希望

zhx 根據這些操作來判斷這是什麼資料結構,但是 zhx 覺得這題太難了所以跑路

了,於是黎大爺把這道題扔給了你。

輸入格式:

第一行乙個整數n代表操作的數目。

接下來n行,每行兩個整數opt,v。如果opt = 1,代表黎大爺把v加入了資料

結構;如果opt = 2,代表了黎大爺從資料結構中取出了乙個數,值是v。

輸出格式:

輸出總共三行,第一行代表資料結構是否可能是棧,第二行代表資料結構是

否可能是佇列,第三行代表資料結構是否可能大根堆。每一行的結果都只可能是

「yes」或者「no」 。

輸入樣例#1:

2

1 12 1

輸出樣例#1:

yes

yesyes

對於100%的資料,1 ≤ n ≤ 10 3 。

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7int ans1,ans2,ans3;//

預設是目標資料結構

8 stacks;

9 queueq;

10 priority_queueheap;

11int

main()

1224

else

2534

if(d!=s.top())ans1=1;35

if(s.size()!=0)36

s.pop();

3738

if(d!=q.front())ans2=1;39

if(q.size()!=0)40

q.pop();

4142

if(d!=heap.top())ans3=1;43

if(heap.size()!=0)44

heap.pop();

4546}47

}48if(ans1==0

)49 cout<<"

yes"

<50else cout<<"no"

<51if(ans2==0

)52 cout<<"

yes"

<53else cout<<"no"

<54if(ans3==0

)55 cout<<"

yes"

<56else cout<<"no"

<57return0;

58 }

資料結構 判斷回文數

棧的基本應用 判斷回文數 include include include include define stack init size 100 儲存空間初始分配量 define stack increasement 10 using namespace std typedef struct sqst...

回文判斷 資料結構 棧

試編寫乙個演算法,判斷一次讀入的乙個以 結束符的字母序列是否為形容序 列1 序列2 模式的字串行。其中序列1 和序列2都不含字元 且序列2是序列1的你序列。列入,a b b a 時屬於該模式的字串行,而 1 3 3 1 不是 include include include typedef struc...

聯考20200525 T1 資料結構

分析 這道題可以看做單點修改區間查詢歷史最小值的資料結構題 區間修改單點查詢歷史版本可以使用二維資料結構維護 由於卡空間,這裡只能選擇kd樹 在kd樹上區間修改,歷史最值只需要統計單點到根節點的路徑上記錄的歷史最值就行了 關鍵是這道題如何轉化?我們把詢問離線,每乙個查詢 l,r 看做座標軸上的單點 ...