洛谷P1801 黑匣子_NOI導刊2010提高(06)
https://www.luogu.org/problemnew/show/1801
這道題目顯然就用打2個堆去維護一下就好了;
這裡有fb大佬給出一種更簡單的方法
mulitset
我們知道set裡面是遊有序的,所以我們插入一個數的時候,我們看看當前的第k小比這個數大還是小?
小的話沒關係,不影響,大的話那麼吧我們的迭代器指標前移
#include<bits/stdc++.h>
using namespace std;
const int N=200005;
multiset<int>q;
int a[N],s[N];
int n,m;
int main()
{
cin >>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=m;i++)cin>>s[i];
int k=1;q.insert(a[1]);
multiset<int>::iterator it=q.begin();
if(s[k]==1)printf("%d\n",a[1]),k++;
for(int i=2;i<=n;i++){
q.insert(a[i]);if(a[i]<*it)it--;
while (s[k]==i){if(k!=1)it++;printf("%d\n",*it),k++;}
}
return 0;
}
相關推薦
洛谷P1801 黑匣子_NOI導刊2010提高(06)
https://www.luogu.org/problemnew/show/1801 這道題目顯然就用打2個堆去維護一下就好了; 這裡有fb大佬給出一種更簡單的方法 mulitset 我們知道s
Luogu P1801 黑匣子_NOI導刊2010提高(06)
data 數據 整數 復制 names max radius http 用兩個 P1801 黑匣子_NOI導刊2010提高(06) 題目描述 Black Box是一種原始的數據庫。它可以儲存一個整數數組,還有一個特別的變量i。最開始的時候Black Box是空的.而i等於0
[LUOGU] P1801 黑匣子_NOI導刊2010提高(06)
Black Box是一種原始的資料庫。它可以儲存一個整數陣列,還有一個特別的變數i。最開始的時候Black Box是空的.而i等於0。這個Black Box要處理一串命令。 命令只有兩種: ADD(
【洛谷P1801】黑匣子_NOI導刊2010提高(06)
push 例如 while str logs return 處理 ges 用兩個 題目描述 Black Box是一種原始的數據庫。它可以儲存一個整數數組,還有一個特別的變量i。最開始的時候Black Box是空的.而i等於0。這個Black Box要處理一串命令。 命令只有
|洛谷|NOI導刊|堆|黑匣子_NOI導刊2010提高(06)
http://www.luogu.org/problem/show?pid=1801 開兩個堆,一個大根堆維護1~i-1小元素,一個小根堆維護i~n小元素 新增元素時,如果元素小於大根堆堆頂,那麼把大
題解 P1801 【黑匣子_NOI導刊2010提高(06)】
amp 平衡樹 clu 實現 cto ctype 一位 mark 排序 我看正解已經有一大堆了,我就發個不太正經的吧 最近不會高級數據結構的蒟蒻在搞STL,搞完普通平衡樹後就看到了這道題,本來想用黑科技pb_ds中的紅黑樹做的,發現已經有大佬貼了一篇。set的做法也有人發
洛谷 P1777 幫助_NOI導刊2010提高(03) 解題報告
ems 混亂 取出 ring ++ 數據 inline 決定 memset P1777 幫助_NOI導刊2010提高(03) 題目描述 Bubu的書架亂成一團了!幫他一下吧! 他的書架上一共有n本書。我們定義混亂值是連續相同高度書本的段數。例如,如果書的高度是30,30,3
(區間第k大)黑匣子_NOI導刊2010提高(06)
https://www.luogu.org/problemnew/show/P1801 可以用multiset水過,發現有超多資料結構可以處理這道題。== 線段樹:https://blog.csdn.net/weishengmingerfendou/article/details/47144
黑匣子_NOI導刊2010提高(06) Splay Tree
題目描述 Black Box是一種原始的資料庫。它可以儲存一個整數陣列,還有一個特別的變數i。最開始的時候Black Box是空的.而i等於0。這個Black Box要處理一串命令。 命令只有兩種: ADD(x):把x元素放進BlackBox; GET:i加1,然後輸出Blackhox中
LUOGUP1801 黑匣子_NOI導刊2010提高(06)
一道堆排。主要思路就是建兩個堆,一個大根堆,一個小根堆,大根堆存1-i的,小根堆存i+1-u[i]的。然後如果大根堆的堆頂小於了小根堆的堆頂說明大根堆不是1-i的了,就需要維護這兩個堆,交換他們的堆頂。
堆/平衡樹——Luogu1801 黑匣子_NOI導刊2010提高(06)
https://www.luogu.org/problem/show?pid=1801 那個,這個標題一開始我以為是飛機上的黑匣子。。。 進入正題,輸出第k小 我們來腦洞大開一下,因為k是遞增
刷題記錄-luoguP1801 黑匣子_NOI導刊2010提高(06)
本題主要就是找第k小的數 可以建一棵二叉搜尋樹,設節點左子樹的個數為size,則有: 如果k==size+1,那麼顯然這個節點就是第k小的數 如果k<size+1,那麼k肯定在左子樹中,且為左子樹中第k小的數 如果k>size+1,那麼k肯定在右子樹中,且為右子
洛谷 P1765 手機_NOI導刊2010普及(10) 題解
names 超過 換行符 指定 size main 輸入輸出格式 必須 位置 此文為博主原創題解,轉載時請通知博主,並把原文鏈接放在正文醒目位置。 題目鏈接:https://www.luogu.org/problem/show?pid=1765 題目描述 一般的手
洛谷 P1951 收費站_NOI導刊2009提高(2) 最短路+二分
目錄 題面 題目連結 題目描述 輸入輸出樣例 輸入樣例: 輸出樣例: 說明 思路 AC程式碼 總結 題面 題目連結 其實還有一道雙倍經驗 題目描述 在某個遙遠的國家裡,有n個城市。編號為1,2,3,…,n。 這個國家的政府修建了m條雙向的公路。每條公路連線著兩個城市。沿著某條公路,開車從一個
luogu p1799 數列_NOI導刊2010提高(06)
tps else return include .org 沒有 個數 ble 提高 原題鏈接 https://www.luogu.org/problem/show?pid=1799 我一開始覺得這個題真是玄學,直到我發現自己沒有寫max之後。。。(逃) f[i][j]表
(主席樹)P1801 黑匣子_NOI導刊2010提高
https://www.luogu.org/problemnew/show/P1801 題目可以用主席樹直接求解,ai <= 2000000000,需要離散化。 #include<bits/stdc++.h> using namespace std; const int
洛谷P1807 最長路_NOI導刊2010提高(07) 最長路
pro ace prior show str back con 去掉 esp 傳送門 把邊的權值改為負的,然後跑一遍最短路,對得到的結果取負就行了。忽然意識到邊的權值變為負的之後就不能用dijkstra了,因該用spfa,不過把dijkstra裏判斷是否進入過堆的語句去掉也
洛谷P1800 software_NOI導刊2010提高(06)
協同 range right ace pac 所有 cst 同時 一個人 P1800 software_NOI導刊2010提高(06) 題目描述 一個軟件開發公司同時要開發兩個軟件,並且要同時交付給用戶,現在公司為了盡快完成這一任務,將每
洛谷 P1800 software_NOI導刊2010提高(06)
題目連結 題解 二分答案+dp 如果我們知道答案,貪心地想,讓每個人做盡量多的模組一定不會比最優解差 \(f[i][j]\)表示前\(i\)個人第一個模組做了\(j\)塊,第二個模組最多能做多少 然後我們列舉第\(i\)個人做多少塊第一個模組,就可以算出第二個模組最多能做多少 取最大值即可 Co
P1807 最長路_NOI導刊2010提高(07)
接下來 for pac ext 輸入輸出 etc while out string 洛谷——P1807 最長路_NOI導刊2010提高(07) 題目描述 設G為有n個頂點的有向無環圖,G中各頂點的編號為1到n,且當為G中的一條邊時有i <