日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

D. Multiset(树状数组 + 二分)

發(fā)布時間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 D. Multiset(树状数组 + 二分) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Multiset

可能更好的閱讀體驗

思路

二分 + 樹狀數(shù)組做法

我們發(fā)現(xiàn)每個數(shù)的范圍是$ <= 1e6$的,所以可以直接在線操作,不用離散化離線操作。

這個時候我們的treetreetree數(shù)組就相當(dāng)與一個桶,每個桶里統(tǒng)計的是值為其下標(biāo)的個數(shù),通過樹狀數(shù)組的前綴和性質(zhì),我們可以通過二分輕松的鎖定第kkk項的位置,然后進(jìn)行刪除操作,具體的操作細(xì)節(jié)看代碼實現(xiàn)。

權(quán)值線段樹做法

線段相較而言,常數(shù)大一些,維護(hù)的基本思路還是更樹狀數(shù)組是一樣的。當(dāng)我樹狀數(shù)組1122ms1122 ms1122ms過了之后,感覺線段樹有點懸,然后就沒寫了,這里只是提供一個思路。

代碼

#include <bits/stdc++.h>using namespace std;typedef long long ll; const int N = 1e6 + 10;int tree[N], n, m;inline ll read() {ll x = 1, s = 0; char c;c = getchar();while(c < '0' || c > '9') {if(c == '-') x = -1;c = getchar();}while(c >= '0' && c <= '9') {s = (s << 1) + (s << 3) + (c ^ 48);c = getchar();}return x * s; }inline int lowbit(int x) {return (-x) & (x); }inline void add(int x, int value) {while(x <= n) {tree[x] += value;x += lowbit(x);} }inline int get_sum(int x) {int sum = 0;while(x) {sum += tree[x];x -= lowbit(x);}return sum; }int main() {// freopen("in.txt", "r", stdin);n = read(), m = read();for(int i = 1; i <= n; i++) {int x = read();add(x, 1);}// for(int i = 1; i <= n; i++)//調(diào)試用的,可以不管。// printf("%d%c", get_sum(i), i == n ? '\n' : ' ');for(int i = 1; i <= m; i++) {int x = read();if(x > 0) add(x, 1);//插入操作簡單,只需要修改其數(shù)組下標(biāo)就行。else {x = abs(x);int l = 1, r = n;while(l < r) {//找到第一個其前綴和大于等于k的下標(biāo),修改其值。int mid = l + r >> 1;if(get_sum(mid) >= x) r = mid;else l = mid + 1;}add(l, -1);}// for(int i = 1; i <= n; i++)// printf("%d%c", get_sum(i), i == n ? '\n' : ' ');}int l = 1, r = n;while(l < r) {//尋找第一個大于等于一的下標(biāo),其下標(biāo)就是在集合中一定存在的數(shù)。int mid = l + r >> 1;if(get_sum(mid) >= 1) r = mid;else l = mid + 1;}if(get_sum(l) >= 1) printf("%d\n", l);//特判一下查找結(jié)果。else puts("0");return 0; }

總結(jié)

以上是生活随笔為你收集整理的D. Multiset(树状数组 + 二分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美成人福利 | 神马午夜dy888 | 午夜插插插 | 免费看女人裸体 | 日本激情电影 | 亚洲视频中文字幕在线观看 | 美梦视频大全在线观看高清 | 蜜臀少妇久久久久久久高潮 | 欧美理论片在线观看 | 丝袜老师扒开让我了一夜漫画 | 久久99精品久久久久久园产越南 | 色妇av | 欧美日韩中文国产一区发布 | 国产精品无码午夜福利 | 免费网站在线观看视频 | 一级在线看 | 久草福利免费 | 精品少妇人妻AV无码专区在线 | 国产毛片在线视频 | 涩涩屋视频 | 久久香蕉av | 久久精品在线播放 | 成人黄色在线视频 | 秋霞三区| 无码一区二区波多野结衣播放搜索 | 亚洲小说在线 | 亚洲国产成人一区二区 | 99色综合| 久久日韩| 人人干人人插 | 国产最新地址 | 中文字幕有码视频 | 亚洲日日夜夜 | 日韩免费精品 | 国产后入又长又硬 | 青青草原国产在线观看 | 无遮挡边吃摸边吃奶边做 | 日日拍夜夜拍 | 成人在线视频免费 | 日韩国产欧美 | 国产精品入口麻豆 | 国产精品制服诱惑 | 国产91嫩草 | 欧美国产日韩精品 | 特级淫片aaaaaaa级附近的 | 成人在线观看免费高清 | 国产真人做爰毛片视频直播 | 午夜精品一区二区在线观看 | 精品视频国产 | 欧美性网站 | 亚洲免费在线视频观看 | 麻豆福利在线观看 | 欧美一区二区黄片 | 蘑菇视频黄色 | 男人激烈吮乳吃奶爽文 | 国产精品午夜在线 | 日日天天干 | 求av网站| 国产原创视频在线 | 青青草草视频 | 国产精品v | 中文有码在线观看 | 国产 欧美 在线 | 中文有码一区 | 国产精品无码在线播放 | 久久免费电影 | 日本在线资源 | 极品淫少妇 | 俄罗斯美女一级爱片 | 成年人性生活免费视频 | 欧美性大交 | 国产又粗又爽视频 | 老师用丝袜脚帮我脚交 | 国产精品51麻豆cm传媒 | 黄色网免费 | 99这里有精品 | 国产吞精囗交免费视频网站 | 成人欧美一区二区三区在线观看 | 国产亚洲综合精品 | 精品少妇一区 | 中文字幕精品视频在线观看 | 中文字幕第四页 | 国产欧美一区二区三区精品酒店 | 中国肥胖女人真人毛片 | 久久网免费视频 | 九九热在线视频观看 | 性xxxxxxxxx18欧美| 国产午夜视频 | 在线免费观看日韩av | 亚洲一区二区三区久久久 | 欧美精选一区二区 | 蜜桃av噜噜一区二区三区小说 | 一级黄色大片网站 | 苍井空浴缸大战猛男120分钟 | 日韩精品电影一区二区三区 | 国产精品污www一区二区三区 | 国产精品腿扒开做爽爽爽挤奶网站 | 四虎影视在线播放 | 成人福利网站在线观看 |