演算法競賽高階指南 動態中位數 對頂堆

2021-09-25 13:23:03 字數 1061 閱讀 1623

題目

依次讀入乙個整數序列,每當已經讀入的整數個數為奇數時,輸出已讀入的整數構成的序列的中位數。

輸入格式

第一行輸入乙個整數p,代表後面資料集的個數,接下來若干行輸入各個資料集。

每個資料集的第一行首先輸入乙個代表資料集的編號的整數。

然後輸入乙個整數m,代表資料集中包含資料的個數,m一定為奇數,資料之間用空格隔開。

資料集的剩餘行由資料集的資料構成,每行包含10個資料,最後一行資料量可能少於10個,資料之間用空格隔開。

輸出格式

對於每個資料集,第一行輸出兩個整數,分別代表資料集的編號以及輸出中位數的個數(應為資料個數加一的二分之一),資料之間用空格隔開。

資料集的剩餘行由輸出的中位數構成,每行包含10個資料,最後一行資料量可能少於10個,資料之間用空格隔開。

輸出中不應該存在空行。

資料範圍

1≤p≤1000.

1≤m≤9999.

輸入樣例

3 

1 9

1 2 3 4 5 6 7 8 9

2 9

9 8 7 6 5 4 3 2 1

3 23

23 41 13 22 -3 24 -31 -11 -8 -7

3 5 103 211 -311 -45 -67 -73 -81 -99

-33 24 56

輸出樣例
1 5

1 2 3 4 5

2 59 8 7 6 5

3 12

23 23 22 22 13 3 5 5 3 -3

-7 -3

分析

**:

#include #include using namespace std;

int p,m,x,arr[10000],ans[10000];

int main()

if(qued.size()>quer.size())

if(i&1) cout

}

AcWing 106 動態中位數(對頂堆)

依次讀入乙個整數序列,每當已經讀入的整數個數為奇數時,輸出已讀入的整數構成的序列的中位數。輸入格式 第一行輸入乙個整數p p p,代表後面資料集的個數,接下來若干行輸入各個資料集。每個資料集的第一行首先輸入乙個代表資料集的編號的整數。然後輸入乙個整數m m m,代表資料集中包含資料的個數,m m m...

演算法高階指南 104 貨倉選址 中位數

在一條數軸上有 nn 家商店,它們的座標分別為 a1a1 anan。現在需要在數軸上建立一家貨倉,每天清晨,從貨倉到每家商店都要運送一車商品。為了提高效率,求把貨倉建在何處,可以使得貨倉到每家商店的距離之和最小。輸入格式 第一行輸入整數n。第二行n個整數a1a1 anan。輸出格式 輸出乙個整數,表...

《演算法競賽高階指南》最大異或對

在給定的n個整數a1,a2 an中選出兩個進行xor 異或 運算,得到的結果最大是多少?輸入格式 第一行輸入乙個整數n。第二行輸入n個整數a1 an。輸出格式 輸出乙個整數表示答案。資料範圍 1 n 105,0 ai 231 輸入樣例 31 2 3 輸出樣例 3 include include us...