黑盒子 對頂堆

2021-09-26 01:14:30 字數 432 閱讀 7021

我們的大根堆中的所有數都必須小於小根堆中的數。而且還要注意,i每一次都是要增加1的,所以我們每次做完get操作後,都需要最小堆中的最小數彈出存入最大堆,也就是滿足第k小,因為k就是i,所以我們要這麼處理。

倆個堆維護乙個有序序列,求第k個小的數

#include #include #include #include using namespace std;

const int n = 30010;

int n, m;

int a[n], b[n];

int main()

j ++ ;

}down.push(up.top());

up.pop();

cout << down.top() << endl;

}return 0;

}

關於黑盒子測試

等價劃分 將所有可能的輸入資料劃分為若干個子集,然後從每個子集選取有代表性的資料作為測試用例。等價類 某個輸入域的子集合,各個輸入資料對於揭露程式中的錯誤是等效的。有效等價類 對於程式規格說明是合理的,有意義的輸入資料構成的集合,利用他檢驗程式是否實現了預知的功能。無效等價類 對於程式規格是不合理的...

《演算法競賽高階指南》黑盒子

黑盒子代表乙個原始的資料庫。它可以用來儲存整數陣列,並且它擁有乙個特殊變數i。在最開始,黑盒子是空的,並且i 0。現在對黑盒子進行一系列的操作處理,操作包括以下兩種 1 add x 表示將x加入到黑盒子中。2 get 使i增加1,輸出黑盒子中第i小的數值 即將所有數按公升序排序後的第i個數 下面給出...

對頂堆的故事

總結 用大頂堆和小頂堆來實現,控制兩個堆的個數來實現將第幾個數暴露在兩個堆的中間,這樣就可以隨時輸出第幾個數,隨意以乙個頂堆的top 為標準,判斷下乙個數加在哪個堆裡,並時刻控制數量,這樣就可以將要求的第幾個數一直存疑兩個頂堆的top 之間。include include using namespa...