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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

P2617-Dynamic Rankings【树套树】

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P2617-Dynamic Rankings【树套树】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

正題

題目鏈接:https://www.luogu.com.cn/problem/P2617


題目大意

給出一個序列,要求支持

  • 區間查詢第kkk
  • 單點修改

  • 解題思路

    區間查詢第kkk大需要使用主席樹,構建權值線段樹的前綴和。考慮如何進行單點修改,在前綴和上進行單點修改就是進行區間修改,區間修改主席樹顯然不可能,考慮樹套樹。

    我們可以維護以權值線段樹為權值的樹狀數組,這樣可以單點修改并且維護動態前綴和。

    時間復雜度:O(nlog?2n)O(n\log^2 n)O(nlog2n)


    codecodecode

    #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #define lowbit(x) (x&-x) using namespace std; const int N=1e5+10,M=N*400; int n,m,a[N],b[N*2],root[N]; int q1[N],q2[N],q3[N],num; int w[M],ls[M],rs[M],tot; int cnt1,cnt2,tmp1[N],tmp2[N]; char op[N]; void Updata(int &x,int l,int r,int pos,int val){if(!x)x=++num;if(l==r){w[x]+=val;return;}int mid=(l+r)>>1;if(pos<=mid)Updata(ls[x],l,mid,pos,val);else Updata(rs[x],mid+1,r,pos,val);w[x]=w[ls[x]]+w[rs[x]]; } void Change(int x,int val){int k=lower_bound(b+1,b+1+tot,a[x])-b;while(x<=n){Updata(root[x],1,tot,k,val);x+=lowbit(x);}return; } int Ask(int l,int r,int k){if(l==r)return l;int mid=(l+r)>>1,sum=0;for(int i=1;i<=cnt1;i++)sum-=w[ls[tmp1[i]]];for(int i=1;i<=cnt2;i++)sum+=w[ls[tmp2[i]]];if(k<=sum){for(int i=1;i<=cnt1;i++)tmp1[i]=ls[tmp1[i]];for(int i=1;i<=cnt2;i++)tmp2[i]=ls[tmp2[i]];return Ask(l,mid,k);}else{for(int i=1;i<=cnt1;i++)tmp1[i]=rs[tmp1[i]];for(int i=1;i<=cnt2;i++)tmp2[i]=rs[tmp2[i]];return Ask(mid+1,r,k-sum);} } int Query(int x,int l,int r){l--;cnt1=cnt2=0;for(int i=l;i;i-=lowbit(i))tmp1[++cnt1]=root[i];for(int i=r;i;i-=lowbit(i))tmp2[++cnt2]=root[i];return Ask(1,tot,x); } int main() {scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&a[i]);b[++tot]=a[i];}for(int i=1;i<=m;i++){cin>>op[i];scanf("%d %d",&q1[i],&q2[i]);if(op[i]=='Q')scanf("%d",&q3[i]);else b[++tot]=q2[i];}sort(b+1,b+1+tot);tot=unique(b+1,b+1+tot)-b-1;for(int i=1;i<=n;i++)Change(i,1);for(int i=1;i<=m;i++){if(op[i]=='Q')printf("%d\n",b[Query(q3[i],q1[i],q2[i])]);else{Change(q1[i],-1);a[q1[i]]=q2[i];Change(q1[i],1);}}return 0; }

    總結

    以上是生活随笔為你收集整理的P2617-Dynamic Rankings【树套树】的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 伊人网av| 在线观看中文字幕视频 | 国产做受入口竹菊 | 欧美日韩亚洲不卡 | 久久久久久久福利 | 在线免费日韩av | 91美女视频网站 | 一级黄色欧美 | 欧美三级视频在线 | 欧美另类xxxx野战 | 精品国产欧美日韩 | 成人免费在线网址 | 男女午夜视频在线观看 | 一区二区三区视频免费在线观看 | 国产二级视频 | 亚洲色成人www永久网站 | 亚洲在线免费观看 | 国产亚洲久久 | 欧美黄色大片在线观看 | 国产精品久久久久久免费观看 | 国产人妻精品午夜福利免费 | 亚洲一区欧美一区 | 国产69熟 | 亚洲色图 校园春色 | 国精产品乱码一区一区三区四区 | 欧美色图亚洲自拍 | 成年人免费在线 | 丝袜 亚洲 另类 欧美 重口 | 国产白拍 | 一区二区欧美日韩 | av自拍偷拍 | 天堂在线视频tv | 欧美精品欧美极品欧美激情 | 少妇太紧太爽又黄又硬又爽小说 | aa毛片视频 | 亚洲精品国产av | 最新色网址| 无码人妻久久一区二区三区不卡 | 亚洲成人网在线观看 | 欧美大片视频在线观看 | 91精品国产欧美一区二区成人 | 亚洲午夜免费 | 欧美一级片网址 | 欧美亚洲视频一区 | 一本久久a精品一合区久久久 | 亚洲国产一二 | 久在线观看视频 | 日本女优在线看 | 97在线视频免费观看 | 91免费在线视频观看 | 午夜影院一区 | 欧美污视频 | 精品一区二区三区国产 | 女生下面流水视频 | 婷婷激情小说网 | 欧美激情国产一区 | 国产一级不卡毛片 | 欧美激情第三页 | 黄色裸体视频 | 综合爱爱网 | 成人国产三级 | 中文字幕亚洲色图 | 亚洲激情国产 | 这里只有精品9 | 中文字幕高清在线播放 | 国产一区二区久久精品 | brazzers欧美极品少妇 | 色涩视频在线观看 | 日日躁夜夜躁狠狠久久av | 午夜青青草 | 无套内谢的新婚少妇国语播放 | 亚洲激情视频小说 | 中文字幕亚洲乱码熟女1区2区 | 亚洲成人av电影 | 中文字幕免费一区 | 中文字幕在线视频一区 | 日韩在线视频网站 | 五月婷婷丁香久久 | 日韩av综合网站 | 浓精喷进老师黑色丝袜在线观看 | 人人揉人人| 国产专区视频 | 操视频网站 | 无码专区久久综合久中文字幕 | 国内精品视频一区 | 91在线观看免费高清完整版在线观看 | 在线中文字幕一区 | 亚洲精品乱码久久久久 | 三上悠亚一区二区 | 激情丁香 | 国产chinesehd精品 | 大学生av | 亚洲大尺度视频 | 日本欧美一本 | 一区二区视频免费在线观看 | www.视频一区| 五月天婷婷基地 | 在线国产小视频 | 黄色长视频 |