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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

POJ_2104 K-th Number 【主席树】

發(fā)布時間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 POJ_2104 K-th Number 【主席树】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一 題面

  K-th Number

二 分析

  第一個主席樹的題,感觸蠻多吧,幾個關(guān)鍵點就是可持久化數(shù)據(jù)結(jié)構(gòu),這里的主席樹其實就是保留了之前各個版本的權(quán)值線段樹,然后利用權(quán)值線段樹和歷史版本可以進行相加減的優(yōu)勢,實現(xiàn)了第K小。

三 AC代碼

1 #include <cstdio> 2 #include <iostream> 3 #include <vector> 4 #include <algorithm> 5 using namespace std; 6 7 const int MAXN = 1e5 + 15; 8 const int N = MAXN * 30; 9 10 int n, m, tot, len; 11 int a[MAXN], b[MAXN]; 12 int T[N], lson[N], rson[N], sum[N]; 13 //進行離散化 14 int getID(int val) 15 { 16 return lower_bound(b + 1, b + n + 1, val) - b; 17 } 18 //初始化,如果追求速度,可以進行優(yōu)化 19 void build(int &root, int l, int r) 20 { 21 root = tot++; 22 if(l == r) 23 return; 24 sum[root] = 0; 25 int mid = (l + r) >> 1; 26 build(lson[root], l, mid); 27 build(rson[root], mid + 1, r); 28 } 29 //構(gòu)造新版本的權(quán)值線段樹 30 void update(int &cur, int pre, int l, int r, int val) 31 { 32 cur = tot++; 33 lson[cur] = lson[pre]; 34 rson[cur] = rson[pre]; 35 sum[cur] = sum[pre] + 1; 36 if(l == r) return; 37 int mid = (l + r) >> 1; 38 if(val <= mid) update(lson[cur], lson[pre], l, mid, val); 39 else update(rson[cur], rson[pre], mid + 1, r, val); 40 } 41 //詢問第K小 42 int query(int x, int y, int l, int r, int k) 43 { 44 if(l == r) 45 return l; 46 int mid = (l + r) >> 1; 47 int res = sum[lson[y]] - sum[lson[x]]; 48 if(res >= k) return query(lson[x], lson[y], l, mid, k); 49 else return query(rson[x], rson[y], mid + 1, r, k - res); 50 } 51 int main() 52 { 53 scanf("%d %d", &n, &m); 54 for(int i = 1; i <= n; i++) 55 { 56 scanf("%d", &a[i]); 57 b[i] = a[i]; 58 } 59 sort(b + 1, b + n + 1); 60 len = unique(b + 1, b + n + 1) - b - 1; 61 tot = 0; 62 build(T[0], 1, len); 63 for(int i = 1; i <= n; i++) 64 { 65 update(T[i], T[i-1], 1, len, getID(a[i])); 66 } 67 while(m--) 68 { 69 int l, r, k; 70 scanf("%d %d %d", &l, &r, &k); 71 printf("%d\n", b[query(T[l - 1], T[r], 1, len, k)]); 72 } 73 return 0; 74 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/dybala21/p/10800926.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的POJ_2104 K-th Number 【主席树】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲特黄一级片 | 男女日批网站 | 老湿机69福利 | 欧美激情国产一区 | 亚洲精品一区二区三区蜜桃 | 亚洲第四页| 一本一道久久综合狠狠老精东影业 | 东方成人av| 精品+无码+在线观看 | 成人h动漫精品一区二 | 我们的生活第五季在线观看免费 | 亚洲欧美日韩系列 | 成人综合一区二区 | 97超视频在线观看 | 亚洲天天 | 伊人影院在线观看视频 | 日韩美女视频在线 | 亚洲涩涩| 疯狂撞击丝袜人妻 | 玖玖爱这里只有精品 | 999久久精品 | 女性女同性aⅴ免费观女性恋 | 欧美绿帽合集videosex | 无遮挡国产| 日韩成人av网站 | 国产96在线 | 亚洲 | xxxx视频在线 | 亚洲AV午夜精品 | 天天射综合 | 久久久久久免费观看 | 一区二区内射 | 邻居交换做爰2 | 亚洲精品国产精品国自产网站按摩 | 性感美女黄色片 | 色网站观看 | 玖操| 97se亚洲综合 | 精品视频一二三 | 日日夜夜爱 | 国产精品探花视频 | 国产精品久久久久久久裸模 | 咪咪色在线视频 | 黄色福利站| 操批网站 | 日韩av在线免费观看 | 亚洲午夜久久久久久久久红桃 | 国产精品视频免费在线观看 | 看特级毛片 | 国产精品久久久久久一区二区 | 老色批影视 | 国产网友自拍 | 青草视频污| 国产精品久久毛片av大全日韩 | 亚洲码欧美码一区二区三区 | 69**夜色精品国产69乱 | 亚洲欧美一区二区三区在线观看 | 国产靠逼视频 | 亚洲成人av电影在线 | 久久av在线 | 一区二区三区四区日韩 | 久久久久久9 | 亚洲xxxx天美| 成人在线免费观看网址 | 欧美日韩乱 | 樱花电影最新免费观看国语版 | 中文字幕在线日本 | 成人刺激视频 | 日韩久久一区二区 | 日韩 中文字幕 | 草色噜噜噜av在线观看香蕉 | 中文毛片无遮挡高潮免费 | 免费三级黄色 | av每日更新| 国产麻豆一区二区三区 | 91看视频 | 精品在线播放 | 中文字幕伦理 | 朴麦妮原版视频高清资源 | 欧美精品99久久 | 欧美视频福利 | 成人免费视频毛片 | 天天做天天摸天天爽天天爱 | 狠狠干综合 | 欧美日韩色综合 | 瑟瑟视频免费观看 | ww黄色 | 久久精品视频免费播放 | 射精一区二区 | 久久中文字幕在线 | 播播网色播播 | 怡红院成人网 | 村上里沙番号 | 污黄啪啪网 | 91宅男 | 日韩av在线一区 | h部分肌肉警猛淫文 | 成人一区二区在线 | 免费国产一区 | 中文字幕在线观看网站 |