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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

洛谷 - P2617 Dynamic Rankings(树状数组套主席树)

發布時間:2024/4/11 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 洛谷 - P2617 Dynamic Rankings(树状数组套主席树) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:點擊查看

題目大意:給出一個長度為 n 的數列 a,再給出 m 次操作:

  • Q l r k:返回區間 [ l , r ] 內第 k 大的數
  • C x y:令?a[ x ] = y
  • 題目分析:其實就是帶修主席樹。。考慮靜態主席樹,維護的是一個線段樹的前綴和,如果強行修改的話,修改一次的最壞時間復雜度將高達 nlogn,完成 m 次操作后的時間復雜度為 nmlogn,還不如直接暴力去區間里找呢。。直接暴力的話時間復雜度也才 n * m

    所以為了盡可能去平衡查詢和修改的時間復雜度,考慮用樹狀數組維護前綴和,樹狀數組維護普通數組的前綴和,只需要維護 lowbit 位置的 logn 個點,將數組換成主席樹,也就只需要維護 logn 條鏈即可,這樣查詢和修改的時間復雜度都是 nlog^2n

    注意,時空復雜度都是 nlog^2n,所以主席樹的空間應該開 1e5 * log( 1e5 ) * log( 1e5 ) ≈ 400N,本來是想直接開 1e5 * log( 1e5 ) * log( 1e9 ) 的,這樣就不用離散化了,可惜空間不太夠用,所以只能去離線然后乖乖離散化了

    代碼:
    ?

    //#pragma GCC optimize(2) //#pragma GCC optimize("Ofast","inline","-ffast-math") //#pragma GCC target("avx,sse2,sse3,sse4,mmx") #include<iostream> #include<cstdio> #include<string> #include<ctime> #include<cmath> #include<cstring> #include<algorithm> #include<stack> #include<climits> #include<queue> #include<map> #include<set> #include<sstream> #include<cassert> #include<bitset> #include<unordered_map> using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=1e5+100;struct Qu {char op[5];int a,b,c; }q[N];int a[N],n,m,len;struct Node {int l,r;int sum; }tree[N*640];int cnt,root[N],num[2],temp[2][20];int lowbit(int x) {return x&(-x); }void update(int num,int &k,int l,int r,int val) {tree[cnt++]=tree[k];k=cnt-1;tree[k].sum+=val;if(l==r)return;int mid=l+r>>1;if(num<=mid)update(num,tree[k].l,l,mid,val);elseupdate(num,tree[k].r,mid+1,r,val); }void add(int pos,int val) {for(int i=pos;i<=n;i+=lowbit(i))update(a[pos],root[i],1,len,val); }int query(int l,int r,int k) {if(l==r)return l;int sum=0;for(int i=1;i<=num[1];i++)sum+=tree[tree[temp[1][i]].l].sum;for(int i=1;i<=num[0];i++)sum-=tree[tree[temp[0][i]].l].sum;int mid=l+r>>1;if(k<=sum){for(int i=1;i<=num[1];i++)temp[1][i]=tree[temp[1][i]].l;for(int i=1;i<=num[0];i++)temp[0][i]=tree[temp[0][i]].l;return query(l,mid,k);}else{for(int i=1;i<=num[1];i++)temp[1][i]=tree[temp[1][i]].r;for(int i=1;i<=num[0];i++)temp[0][i]=tree[temp[0][i]].r;return query(mid+1,r,k-sum);} }int ask(int l,int r,int k) {num[0]=num[1]=0;for(int i=l-1;i>0;i-=lowbit(i))temp[0][++num[0]]=root[i];for(int i=r;i>0;i-=lowbit(i))temp[1][++num[1]]=root[i];return query(1,len,k); }vector<int>node;int get_id(int x) {return lower_bound(node.begin(),node.end(),x)-node.begin()+1; }void discreate() {sort(node.begin(),node.end());node.erase(unique(node.begin(),node.end()),node.end());len=node.size();for(int i=1;i<=n;i++)a[i]=get_id(a[i]);for(int i=1;i<=m;i++)if(q[i].op[0]=='C')q[i].b=get_id(q[i].b); }void init() {root[0]=0;tree[0].l=tree[0].r=tree[0].sum=0;cnt=1; }int main() { #ifndef ONLINE_JUDGE // freopen("data.in.txt","r",stdin); // freopen("data.out.txt","w",stdout); #endif // ios::sync_with_stdio(false);init();scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",a+i);node.push_back(a[i]);}for(int i=1;i<=m;i++){scanf("%s",q[i].op);if(q[i].op[0]=='C'){scanf("%d%d",&q[i].a,&q[i].b);node.push_back(q[i].b);}elsescanf("%d%d%d",&q[i].a,&q[i].b,&q[i].c); }discreate();for(int i=1;i<=n;i++)add(i,1); for(int i=1;i<=m;i++){if(q[i].op[0]=='Q'){printf("%d\n",node[ask(q[i].a,q[i].b,q[i].c)-1]);}else{add(q[i].a,-1);a[q[i].a]=q[i].b;add(q[i].a,1);}}return 0; }

    ?

    超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

    總結

    以上是生活随笔為你收集整理的洛谷 - P2617 Dynamic Rankings(树状数组套主席树)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 色版视频 | 亚洲av综合色区无码一区爱av | 中文一区二区在线观看 | 午夜精品一区二区三区在线 | 草的我好爽 | 毛茸茸亚洲孕妇孕交片 | 男女一级特黄 | 欧美日韩在线影院 | 黄色片网站在线 | 国产精品久久999 | 日韩中文字幕电影 | 美女扒开尿口让男人桶 | 九九热在线视频 | 美女福利影院 | 欧美日韩六区 | av中亚 | 色涩网站 | 日日爱夜夜爱 | 性爱视频在线免费 | 日本中文有码 | 黄色一级片在线 | 色婷婷狠狠 | 亚洲欧美自拍视频 | 成人国产在线观看 | 最近国语视频在线观看免费播放 | 欧美日韩激情网 | 麻豆视频网站在线观看 | 波多野结衣先锋影音 | 超碰人人艹 | 亚洲一级淫片 | 国产第三页| 美国一区二区三区 | sm一区二区三区 | 美女光屁屁露胸胸 | 五月婷婷深深爱 | 精品久久国产字幕高潮 | 精品人妻伦一二三区免费 | 伊人精品在线视频 | 成人综合网址 | 99在线无码精品入口 | 97成人在线 | 天天鲁一鲁摸一摸爽一爽 | 福利视频一二区 | 久爱视频在线观看 | 久久久精品区 | 久久视频黄色 | 亚洲精品在线看 | 极品超粉嫩尤物69xx | 国产69熟| 日韩 欧美 亚洲 国产 | 国产成人精品一区二区三区免费 | 很黄的网站在线观看 | 亚洲在线免费观看 | 永久免费看mv网站入口78 | 国产宾馆实践打屁股91 | 第一次破处视频 | 成人羞羞国产免费动态 | 天天色网站 | 狠狠躁日日躁夜夜躁 | 看一级黄色 | 亚洲偷 | 亚洲综合久久av | 成人激情综合 | 影音先锋色小姐 | 久久久久女 | 秋霞伦理一区二区 | 成人片黄网站色大片免费毛片 | 超碰在线天天 | 神马午夜视频 | 深夜福利视频网站 | 久久久久久久久久久久国产 | av免费在线观看不卡 | 黑人vs亚洲人在线播放 | www国产亚洲精品久久网站 | 亚洲热av| 日韩美女三级 | 黄色一级一级 | 曰批视频在线观看 | 韩日一区二区 | 国产一区二区日韩 | 一区二区视频在线观看免费 | 在线精品国产 | 亚洲爱爱爱| 97免费在线观看 | 亚洲va欧美va天堂v国产综合 | 欧美日本高清视频 | www.黄色大片 | 麻豆va| 91亚洲国产成人久久精品麻豆 | 领导揉我胸亲奶揉下面 | 美女久久久久久久久 | 欧美日日日 | 久久.com| 亚洲ⅴ国产v天堂a无码二区 | jvid在线 | 亚洲免费视频网 | 伊人成年综合网 | 午夜剧场欧美 | 日韩亚洲精品中文字幕 |