時間限制:c/c++ 3秒,其他語言6秒
空間限制:c/c++ 262144k,其他語言524288k
64bit io format: %lld
你們wyh學長小時候住在河邊,因為周圍的生態環境非常好,所以經常會有天鵝浮在湖面上,每只天鵝都長得不一樣,它們偶爾排成一排,偶爾分散開,偶爾也會去其他河畔,wyh學長為了統計它們的個數,編了乙個程式賦予它們乙個「萌」值,但是這些天鵝很不聽話,一會兒會從別的地方游過來一兩隻,一會兒又會在統計過程中游走一兩隻,現在請你幫他完成統計任務。
共有t(t<=10)組資料,每組資料第一行為兩個數 n, m (n,m <= 500000),代表有n只天鵝和m次操作,接下來一行是n個數字,下面m行首先會輸入乙個字串s,接著會有三類操作,如果s是「insert」,接著輸入乙個正整數a,代表插入乙隻「萌」值為a的天鵝,如果s是「delete」,接著輸入乙個正整數a,代表刪除乙隻「萌」值為a的天鵝,如果s是「query」,接著輸入乙個正整數k,代表查詢「萌」值第k大的天鵝。萌值為[1,1000000000],並且保證一定存在第k大
對應每次詢問,輸出詢問結果。示例1
15 46 4 2 9 1
query 2
insert 7
delete 6
query 2
67
其實這道題真的想不到可以用vector做,而且我對vector也是不熟悉,所有看不懂,只能慢慢學習,學一點是一點吧,vector是乙個動態陣列,可以改變長度,lower_bound()是二分查詢
lower_bound與upper_bound的返回值是不同的
返回第乙個大於等於x的數的位址
例如陣列 1 1 1 3 5
而需要找的那個數是2,怎麼返回呢,
就是返回那個第乙個大於 2 的數的位址,就是返回3的位置,那麼再有一組資料就是5個數1 1 1 3 5,還是需要找尋2,那麼該返回什麼呢?就是第乙個3的位址.
返回第乙個大於x的數的位址
也就是說如果在5個數 1 , 1, 2 , 2 , 4 ,裡邊尋找3,那麼就會返回4的位址
#include #include #include #include #include #include #include using namespace std;
int main()
sort(v.begin(),v.end());
while(m--)
else if(s[0]=='i')
else if(s[0]=='d')}}
}
還有好多知識沒學,要好好補補了 wyh的天鵝 vector的使用
時間限制 c c 3秒,其他語言6秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 你們wyh學長小時候住在河邊,因為周圍的生態環境非常好,所以經常會有天鵝浮在湖面上,每只天鵝都長得不一樣,它們偶爾排成一排,偶爾分散開,偶爾也會去其他河畔,wyh學...
wyh的天鵝 線段樹
時間限制 c c 3秒,其他語言6秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 你們wyh學長小時候住在河邊,因為周圍的生態環境非常好,所以經常會有天鵝浮在湖面上,每只天鵝都長得不一樣,它們偶爾排成一排,偶爾分散開,偶爾也會去其他河畔,wyh學...
NOWCODER wyh的天鵝(vector暴力)
在指定位置loc前插入值為val的元素,返回指向這個元素的迭代器,位置loc我們可以通過lower bound 找到 forwarditer lower bound forwarditer first,forwarditer last,const tp val 該函式返回乙個非遞減序列 first,...