日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜不卡久久精品无码免费 | 亚洲激情视频在线观看 | 91久久一区二区三区 | 黄色欧美视频 | 男人的天堂在线 | 国产成人午夜精华液 | 色77777| 天天久久综合网 | 欧美草比视频 | 香蕉视频官网在线观看 | 99久久久无码国产 | 在线看日韩av | 新版红楼梦在线高清免费观看 | 亚洲熟悉妇女xxx妇女av | 日韩少妇高潮抽搐 | 手机在线看片1024 | 欧美一区二区影院 | 国产毛茸茸 | 污视频免费网站 | 亚洲 欧美 中文字幕 | 99香蕉视频 | 久久精品国产99精品国产亚洲性色 | 91大神福利视频 | 古装做爰无遮挡三级视频 | 欧美特级一级片 | free性丰满69性欧美 | 丰满人妻一区二区三区精品高清 | 欧美日韩免费高清一区色橹橹 | 爱上av| 在线观看9.1 | 国产一精品一aⅴ一免费 | 在线国产一区二区三区 | 免费中文字幕日韩 | 欧美福利一区二区 | 国产精品综合 | 99久久久无码国产精品性青椒 | 老子影院午夜伦不卡大全 | 国产精品久久一区二区三区动 | 亚洲无码精品免费 | 91av入口| 国产精品第十页 | 在线视频网站 | 性视频网址 | 亚洲 激情 小说 另类 欧美 | 国产精品久久久久久亚洲伦 | 欧美成人精品激情在线视频 | av在线观 | 91老女人| 色综合久久88色综合天天 | 天天狠天天插天天透 | 仙踪林久久久久久久999 | 99reav| 国产精选第一页 | 欧美一卡二卡在线观看 | 日韩喷潮 | 在线免费看mv的网站入口 | www.视频一区 | 国产探花在线精品一区二区 | 国产91高清 | 波多野结衣视频免费观看 | 精品人妻一区二区三区蜜桃 | 老色鬼在线 | 欧美精品午夜 | 青青青视频免费观看 | 久久精精品久久久久噜噜 | 亚洲欧美不卡 | 97超碰在线资源 | 欧美一区二区久久久 | 桃色在线观看 | 烈性摔跤 | 97精品在线视频 | 成人免费版| 一区二区三区视频免费视 | 韩国色网 | www.黄色免费| 色综合天天射 | 国产成人精品一区二区三区 | 激情综合色 | 欧美老熟妇乱xxxxx | 三级在线网站 | 亚洲午夜在线播放 | 欧美激情天堂 | 黄色激情av | 特高潮videossexhd | 欧美三级在线 | 麻豆视频网站入口 | 亚洲成人免费在线观看 | 午夜激情视频网站 | 操操日日| 一区二区三区观看 | 色呦呦麻豆 | 91国产精品 | 成人xxx | 欧美日韩亚洲色图 | 国产又粗又猛又爽又 | 黄网站在线观看视频 | 97精品一区二区视频在线观看 | 国产一区二区三区免费在线观看 | 亚洲一区精品在线观看 |