黑盒序列
time limit:10000ms memory limit:65536k
total submit:4 accepted:4
case time limit:1000ms
description
有乙個只能存放整數的序列叫「黑盒序列」,一開始序列為空。對於該序列,我們有add和get兩種操作:
add(x):表示往序列中新增乙個值為x的整數;
get(y):表示在第y次add操作後,取出序列中第k小的乙個數,並將其輸出。(k初值為1,每執行一次get操作後,k的值會加1)
數列中的整數的絕對值不超過2,000,000,000
input
第一行,兩個整數n和m分別表示add和get的操作次數(0<=n,m<=30000)
第二行,n個空格間隔的整數,表示每次add操作往數列中新增的數字
第三行,m個空格間隔的整數,其中第i個數表示在執行了i次add操作後,執行一次get操作。
output
m行,每行乙個整數,表示對應get操作輸出的值
sample input
7 43 1 -4 2 8 -1000 2
1 2 6 6
sample output
3312樣例說明:
操作順序 k 黑盒序列 輸出結果
1 add(3) 3
get 1 3 3
2 add(1) 1, 3
get 2 1, 3 3
3 add(-4) -4, 1, 3
4 add(2) -4, 1, 2, 3
5 add(8) -4, 1, 2, 3, 8
6 add(-1000) -1000, -4, 1, 2, 3, 8
get 3 -1000, -4, 1, 2, 3, 8 1
get 4 -1000, -4, 1, 2, 3, 8 2
9 add(2) -1000, -4, 1, 2, 2, 3, 8
source
neer 1996poj1442
小根堆#include
#include
using namespace std;
int add[30005],get[30005];
priority_queuebig;//建立乙個大根堆
priority_queue,greater>small;//建立乙個小根堆
int main()
big.push(small.top());
small.pop();
printf("%d\n",big.top());}}
專案36 4 血型統計
任務和 黑貓警長在犯罪現場發現了一些血跡,現已經委託檢驗機構確定了血型,需要統計各種血型的樣本數目。輸入 血型序列 a b o c,c代表ab型血,輸入以x結束 輸出 各種血型的數量 輸入樣例 abcaocoaoobx 輸出樣例 a 3 b 2 o 4 ab 2 檔名 main.c 完成日期 201...
NKOI 防守馬克
題目略 我最早其實想的貪心,力量從大到小,從下到上放置奶牛,但是如果有乙隻力量小的奶牛非常重,就矛盾。狀壓dp基礎題,但是開始我一直沒有想到運用列舉頂端的奶牛進行狀態轉移。我發現其實題目中物件增長的方式可以給狀態轉移帶來啟發,比如這裡的奶牛就是乙隻只疊上去的嘛。另外我還發現其實驗證dp是否可行就是看...
nyoj364田忌賽馬
題意 和古代的田忌賽馬一樣,只是可以有多匹馬 大體思路用貪心,主要 盡量多贏幾場 這就有兩點 1.贏的時候盡量贏差不多的對手 2.實在贏不了,就去消耗對方高手 include include using namespace std int t 10000 int k 10000 int main v...