NKOI 3645 黑盒序列

2021-07-11 12:05:37 字數 1732 閱讀 5528

黑盒序列

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 4

3 1 -4 2 8 -1000 2

1 2 6 6

sample output

331

2樣例說明:

操作順序 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...