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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【模板】可持久化线段树 1(主席树)

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

題目背景

這是個非常經(jīng)典的主席樹入門題——靜態(tài)區(qū)間第K小

數(shù)據(jù)已經(jīng)過加強,請使用主席樹。同時請注意常數(shù)優(yōu)化

題目描述

如題,給定N個正整數(shù)構(gòu)成的序列,將對于指定的閉區(qū)間查詢其區(qū)間內(nèi)的第K小值。

輸入輸出格式

輸入格式:

第一行包含兩個正整數(shù)N、M,分別表示序列的長度和查詢的個數(shù)。

第二行包含N個正整數(shù),表示這個序列各項的數(shù)字。

接下來M行每行包含三個整數(shù)l,r,k l, r, kl,r,k , 表示查詢區(qū)間[l,r][l, r][l,r]內(nèi)的第k小值。

輸出格式:

輸出包含k行,每行1個正整數(shù),依次表示每一次查詢的結(jié)果

輸入輸出樣例

輸入樣例#1: 復(fù)制 5 5 25957 6405 15770 26287 26465 2 2 1 3 4 1 4 5 1 1 2 2 4 4 1 輸出樣例#1: 復(fù)制 6405 15770 26287 25957 26287

說明

數(shù)據(jù)范圍

對于20%的數(shù)據(jù)滿足:1≤N,M≤101 \leq N, M \leq 101N,M10

對于50%的數(shù)據(jù)滿足:1≤N,M≤1031 \leq N, M \leq 10^31N,M103

對于80%的數(shù)據(jù)滿足:1≤N,M≤1051 \leq N, M \leq 10^51N,M105

對于100%的數(shù)據(jù)滿足:1≤N,M≤2?1051 \leq N, M \leq 2\cdot 10^51N,M2?105

對于數(shù)列中的所有數(shù)aia_iai?,均滿足?109≤ai≤109-{10}^9 \leq a_i \leq {10}^9?109ai?109

樣例數(shù)據(jù)說明

N=5,數(shù)列長度為5,數(shù)列從第一項開始依次為[25957,6405,15770,26287,26465][25957, 6405, 15770, 26287, 26465 ][25957,6405,15770,26287,26465]

第一次查詢?yōu)?span id="ozvdkddzhkzd" class="katex">[2,2][2, 2][2,2]區(qū)間內(nèi)的第一小值,即為6405

第二次查詢?yōu)?span id="ozvdkddzhkzd" class="katex">[3,4][3, 4][3,4]區(qū)間內(nèi)的第一小值,即為15770

第三次查詢?yōu)?span id="ozvdkddzhkzd" class="katex">[4,5][4, 5][4,5]區(qū)間內(nèi)的第一小值,即為26287

第四次查詢?yōu)?span id="ozvdkddzhkzd" class="katex">[1,2][1, 2][1,2]區(qū)間內(nèi)的第二小值,即為25957

第五次查詢?yōu)?span id="ozvdkddzhkzd" class="katex">[4,4][4, 4][4,4]區(qū)間內(nèi)的第一小值,即為26287

思路

可持久化線段樹這種東西,隨便手模不就能行了嘛;

對于每個新時段樹更新一條相關(guān)鏈,其余引用前面時段的樹枝即可;

代碼實現(xiàn)

1 #include<cstdio> 2 #include<algorithm> 3 const int maxn=2e5+10; 4 int n,m,q; 5 int s[maxn],f[maxn]={-1}; 6 int rt[maxn],rts; 7 int t[maxn<<4],ls[maxn<<4],rs[maxn<<4]; 8 void add(int q,int&p,int l,int r,int x){ 9 if(!p) p=++rts; 10 if(l==r){ 11 t[p]=t[q]+1; 12 return; 13 } 14 int mid=l+r>>1; 15 if(x<=f[mid]) rs[p]=rs[q],add(ls[q],ls[p],l,mid,x); 16 else ls[p]=ls[q],add(rs[q],rs[p],mid+1,r,x); 17 t[p]=t[ls[p]]+t[rs[p]]; 18 } 19 int see(int q,int p,int l,int r,int x){ 20 if(l==r) return f[l]; 21 int mid=l+r>>1; 22 if(x>t[ls[p]]-t[ls[q]]) return see(rs[q],rs[p],mid+1,r,x-t[ls[p]]+t[ls[q]]); 23 else return see(ls[q],ls[p],l,mid,x); 24 } 25 int main(){ 26 scanf("%d%d",&n,&q); 27 for(int i=1;i<=n;i++) scanf("%d",&s[i]),f[i]=s[i]; 28 std::sort(f+1,f+n+1); 29 for(int i=1;i<=n;i++) if(f[i]!=f[m]) f[++m]=f[i]; 30 for(int i=1;i<=n;i++) add(rt[i-1],rt[i],1,m,s[i]); 31 int l,r,k; 32 for(int i=1;i<=n;i++){ 33 scanf("%d%d%d",&l,&r,&k); 34 printf("%d\n",see(rt[l-1],rt[r],1,m,k)); 35 } 36 return 0; 37 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/J-william/p/8127778.html

總結(jié)

以上是生活随笔為你收集整理的【模板】可持久化线段树 1(主席树)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 拔擦8x成人一区二区三区 | 国产一区二区免费看 | 国产精品怡红院 | 国产真实的和子乱拍在线观看 | www.久久 | 在线视频一区二区 | 2019亚洲天堂| 人妻丰满熟妇av无码区免 | 一个色综合导航 | 一区www | 自拍偷拍小视频 | 久久艹免费视频 | 国产一线二线三线在线观看 | 国产成人精品白浆久久69 | 一区二区在线免费视频 | 欧美少妇网 | 亚洲成人中文 | 爱爱爱爱网站 | 插插网站 | 猛男大粗猛爽h男人味 | 亚洲国产欧美一区二区三区深喉 | 各处沟厕大尺度偷拍女厕嘘嘘 | 在线a免费| 原来神马电影免费高清完整版动漫 | 91理论片午午伦夜理片久久 | 野花社区视频在线观看 | 韩漫动漫免费大全在线观看 | 欧美大屁股熟妇bbbbbb | 国产99对白在线播放 | 国产亚洲自拍一区 | 九一在线观看免费高清视频 | 精品国产免费人成在线观看 | 久久密| 国产在线观看黄色 | 欧美在线一二三四区 | 在线精品福利 | 极品超粉嫩尤物69xx | 欧美激情一区 | 国产免费av网站 | 无码人妻一区二区三区一 | 在线免费日韩av | 中字幕视频在线永久在线观看免费 | 精品国产一区二区三 | 日本一区二区三区免费视频 | 久久久激情视频 | 丰满人妻一区二区三区免费视频 | 丰满人妻翻云覆雨呻吟视频 | 亚洲人人插 | 日本成人午夜 | www.香蕉.com | 国产福利视频 | 成人在线视频免费 | 欧美激情网| 美女扒开腿让男人 | av青娱乐| 日韩欧美精品一区二区三区 | 91久久精品日日躁夜夜躁国产 | 黄色三级免费 | 亚洲欧美日本在线 | 二区视频在线 | 岛国av免费在线观看 | 国产日韩高清在线 | 麻豆chinese新婚xxx | 日本午夜在线 | 免费草逼视频 | 日韩精品在线电影 | 久久9精品区-无套内射无码 | 久久成人人人人精品欧 | a黄视频 | 欧美日韩中文字幕一区 | 国产a视频 | 黄色片在线免费 | 国产aaa大片 | 视频在线观看一区二区三区 | 猛1被调教成公厕尿便失禁网站 | 欧美一级色 | 国产人妖一区 | 日本三区视频 | 中文字幕视频在线 | 天天国产视频 | 精品国产一区二区三区在线观看 | 奇米超碰在线 | 俺也去婷婷| 亚洲国产欧洲 | √天堂8资源中文在线 | www.18av| 最新色网站 | 手机在线看片日韩 | 欧美日韩免费高清一区色橹橹 | 老妇女av | 色伊人av| 国产一区视频在线免费观看 | 在线视频久 | 国产精品99久久久久久一二区 | 性xx紧缚网站 | 日本系列第一页 | 在线免费一区二区 | 中文字幕av一区二区三区人妻少妇 | 福利姬在线观看 |