洛谷 2343 寶石管理系統 題解

2021-10-01 04:08:13 字數 1189 閱讀 5945

部落格觀賞效果更佳

給定乙個序列,維護兩種操作,加入乙個數,求第k

kk大的數。

很明顯這個題目珂以用平衡樹做。但是,有乙個引人深思的問題:你會寫平衡樹麼?

但是,所以我們考慮用vec

to

rvector

vector

做這個問題。插入的時候,我們只要low

erbo

un

dlower_bound

lowerb

​oun

d一下找到乙個正確的位置,然後插入進去即珂。這樣保證了每次插入完之後的序列都是公升序的。然後我們只要找到v.e

nd()

−k

v.end()-k

v.end(

)−k的位置,就是第k

kk大了(由於我們是從小到大排,所以要找第k

kk大要從後面找)。

那麼問題來了,如何插入?

insert()函式。等等。。。它不是o(n

)o(n)

o(n)

的麼?但是只要你真誠的向珂朵莉祈禱,珂朵莉就會放你過的。

你們當剛強壯膽,不要害怕,也不要畏懼他們,寫他娘的stl,因為珂朵莉你的神和你同去。他必不卡掉你,也不會讓你wa。

——珂學聖經

**:

#include

using

namespace std;

namespace flandre_scarlet

intrank

(int i)

intrrank

(int i)

#define lb lower_bound(v.begin(),v.end(),x)

#define rb upper_bound(v.begin(),v.end(),x)

void

insert

(int x)

}t;voidr1(

int&x)

void

input_soviet()

f(i,

1,q)

else

if(c==2)

}}void

ismywife()

}int

main()

洛谷 P2697 寶石串

將紅色的設定為 1,綠色的為1,統計字首和sum,如果sum i sum j 則說明i j是乙個穩定的區間 因為答案要求最大,所以我們要記錄每個sum值的最左端點 也就是哪個位置第一次出現某個sum值 每當遇到某個sum值,便利用最左端點求出區間長度,更新答案 吐槽 洛谷標籤裡是個dp,我就沒往其他...

洛谷P2697 寶石串

題目鏈結 題目大意 給乙個只有 texttt 和 texttt 的字串,求乙個 texttt 和 texttt 數量相同的區間,輸出這個區間的最大長度。題解 1.暴力 把所有 texttt 標記為 1 把所有 texttt 標記為 1 求一下字首和陣列 s 二重迴圈列舉左端點和右端點 i j 如果 ...

洛谷 比賽題解

這套題的題目質量很高,寫一發題解。t1 cjwssb最近在物理學科上遇到了難題,他不會計算乙個電路中的總電阻,現在他找到了你,希望你能幫助他。這個電路有如下限定 1 電路只由導線以及電阻為一歐的電阻組成 2 保證電路從左到右連線,即每個電阻或導線的兩個連線點xy保證x 我們可以用dfs求解,這個電路...