模擬堆
問題描述:
維護乙個集合,初始時集合為空,支援如下幾種操作:
1、「i x」,插入乙個數x;
2、「pm」,輸出當前集合中的最小值;
3、「dm」,刪除當前集合中的最小值(資料保證此時的最小值唯一);
4、「d k」,刪除第k個插入的數;
5、「c k x」,修改第k個插入的數,將其變為x;
現在要進行n次操作,對於所有第2個操作,輸出當前集合的最小值。
輸入格式
第一行包含整數n。
接下來n行,每行包含乙個操作指令,操作指令為」i x」,」pm」,」dm」,」d k」或」c k x」中的一種。
輸出格式
對於每個輸出指令「pm」,輸出乙個結果,表示當前集合中的最小值。
每個結果佔一行。
資料範圍
1
<=n
<=1
05
1 <= n <= 10^5
1<=n
<=1
05− 10
9<=x
<=1
09
-10^9 <= x <= 10^9
−109
<=x
<=1
09資料保證合法
輸入樣例
8
i -10
pmi -
10d 1
c 28
i 6pm
dm
輸出樣例
-
106
完整**實現
#include
#include
using namespace std;
const
int n=
1e5+10;
int h[n]
;//堆
int ph[n]
;//存放第k個插入點的下標
int hp[n]
;//存放堆中點的插入次序
int cur_size;
//size 記錄的是堆當前的資料多少
void
heap_swap
(int u,
int v)
void
down
(int u)
}voidup(
int u)
}int
main()
else
if(op==
"pm"
) cout<
if(op==
"dm"
)else
if(op==
"d")
else
if(op==
"c")
}return0;
}```
Day20 高階函式
今天主要學習了python中sorted,filter,map 三個高階函式,還了解了一下函式的柯里化 1.什麼是高階函式def way1 x return x 3 def way2 x return x x result way2 way1 7 print result 1002.標準庫中的高階函...
暑期訓練 day20
暑期訓練 day20 趙景樂今天看完了第二章的內容,有點多,現在想想記得的沒多少,還需要鞏固鞏固,找個時間再把相應的 打一打。今天訓練賽的a題錯了兩次,沒想到暴力能過,還是一開始打的麻煩了,c題是數學題,因為一開始沒優化到底,結果超時了,剪枝 改良公式也算剪枝吧,畢竟少了一重迴圈 後就過了,b題一開...
day20 函式遞迴
函式不僅可以巢狀定義,還可以巢狀呼叫,即在呼叫乙個函式的過程中,函式內部又呼叫另乙個函式,而函式的遞迴呼叫指的是在呼叫乙個函式的過程中又直接或間接地呼叫該函式本身 例如在呼叫f1的過程中,又呼叫f1,這就是直接呼叫函式f1本身 在呼叫f1的過程中,又呼叫f2,而在呼叫f2的過程中又呼叫f1,這就是間...