堆的模板題 洛谷P3378

2021-08-04 11:11:51 字數 987 閱讀 5641

題目描述

如題,初始小根堆為空,我們需要支援以下3種操作:

操作1: 1 x 表示將x插入到堆中

操作2: 2 輸出該小根堆內的最小數

操作3: 3 刪除該小根堆內的最小數

輸入格式:

第一行包含乙個整數n,表示操作的個數

接下來n行,每行包含1個或2個正整數,表示三種操作,格式如下:

操作1: 1 x

操作2: 2

操作3: 3

輸出格式:

包含若干行正整數,每行依次對應乙個操作2的結果。

輸入樣例#1:

5

1 21 523

2

輸出樣例#1:

2

5

1 #include2

using

namespace

std;

3int c[1000010];//

注意陣列的大小

4intn;5

int num=0;6

7void swap(int i,int j)//

swap函式注意大寫,否則有可能與庫函式衝突 813

14void siftdown(int

k)15

27if(t!=k)

28 //

標記!!!

29else flag=1;30

}31return;32

}3334void siftup(int

k)35

44return;45

}4647int

main()

4863

if(t1==2

)64

65if(t1==3)66

71}72return0;

73 }

洛谷P3378 模板 堆

洛谷p3378 輸入樣例 51 2152 32輸出樣例 25ac include using namespace std const int maxn 1e6 5 int heap maxn int ind 0 void insertheap 自下向上調整堆,因為除新加的結點外符合小根堆定義 ret...

洛谷 P3378 模板 堆

如題,初始小根堆為空,我們需要支援以下3種操作 操作1 1 x 表示將x插入到堆中 操作2 2 輸出該小根堆內的最小數 操作3 3 刪除該小根堆內的最小數 輸入格式 第一行包含乙個整數n,表示操作的個數 接下來n行,每行包含1個或2個正整數,表示三種操作,格式如下 操作1 1 x 操作2 2 操作3...

洛谷 P3378 模板 堆

然後稍微科普一下stl哦 在queue裡面有乙個叫做priority queue 優先佇列 初始化狀態為大根堆,經過這樣的操作可以變為小根堆 priority queue greater q 需要注意的是在greater 該括號與後面那個括號不能夠連在一起,否則會報錯,因為 或者可以不這樣做,直接用...