麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

BZOJ 3110, K大數查詢

2019-11-11 01:59:32
字體:
來源:轉載
供稿:網友

PRoblem

傳送門

Mean

要求維護一個數列,支持在某部分的每個位置填上一個數以及查詢某部分第K大的數字。

Analysis

終于學習了一下樹套樹的姿勢……其實和自己想的也差不多……但是不學還是打不出代碼來…… 外層是權值線段樹,內層是區間線段樹。 要注意的細節比較多。二分查詢過程中結果可能超過 Maxlongint ,需要用 unsigned int 類型傳遞;權值可以翻轉后整體右移等等。 但最主要的還是實現樹套樹啦~~~

Code

#include<cstdio>const int N=50000,L=100001,M=16000005;int n,m,cmd,a,b,c,cnt,root[M],ls[M],rs[M];unsigned int sum[M],tag[M];void read(int &x){ char c; bool p=0; while((c=getchar())<'0' || c>'9') if(c=='-') p=1; x=c-'0'; while((c=getchar())>='0' && c<='9') x=x*10+c-'0'; if(p) x=-x;}void down(int o,int l,int r){ if(!ls[o]) ls[o]=++cnt; if(!rs[o]) rs[o]=++cnt; int mid=l+r>>1; tag[ls[o]]+=tag[o],tag[rs[o]]+=tag[o]; sum[ls[o]]+=(mid-l+1)*tag[o],sum[rs[o]]+=(r-mid)*tag[o]; tag[o]=0;}void modify(int &o,int l,int r,int ql,int qr){ if(!o) o=++cnt; if(tag[o] && l<r) down(o,l,r); if(ql==l && r==qr){ sum[o]+=r-l+1; tag[o]++; return; } int mid=l+r>>1; if(qr<=mid) modify(ls[o],l,mid,ql,qr); else if(ql>mid) modify(rs[o],mid+1,r,ql,qr); else{ modify(ls[o],l,mid,ql,mid); modify(rs[o],mid+1,r,mid+1,qr); } sum[o]=sum[ls[o]]+sum[rs[o]];}void insert(int o,int l,int r,int a,int b,int q){ while(l<r){ int mid=l+r>>1; modify(root[o],1,n,a,b); if(q<=mid) r=mid,o<<=1; else l=mid+1,o=o<<1|1; } modify(root[o],1,n,a,b);}unsigned int find(int o,int l,int r,int ql,int qr){ if(!o) return 0; if(l==ql && r==qr) return sum[o]; if(tag[o]) down(o,l,r); int mid=l+r>>1; if(qr<=mid) return find(ls[o],l,mid,ql,qr); if(ql>mid) return find(rs[o],mid+1,r,ql,qr); return find(ls[o],l,mid,ql,mid)+find(rs[o],mid+1,r,mid+1,qr);}int query(int o,int l,int r,int a,int b,unsigned int c){ while(l<r){ int mid=l+r>>1; unsigned int t=find(root[o<<1],1,n,a,b); if(t<c) l=mid+1,c-=t,o=o<<1|1; else r=mid,o<<=1; } return l;}int main(){ read(n),read(m); while(m--){ read(cmd),read(a),read(b),read(c); if(cmd==1) insert(1,1,L,a,b,N-c+1); else printf("%d/n",N+1-query(1,1,L,a,b,c)); } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一级黄色免费观看 | www.精品视频| 最新91在线视频 | 日本网站在线看 | 一级大片久久 | 久久密 | 免费91在线 | 一色屋任你操 | 亚洲精品一区二区三区大胸 | 久久精品欧美电影 | 免费在线观看一级片 | 国产成年免费视频 | 免费a视频在线观看 | 热99在线视频 | av电影在线观看网址 | 亚洲性生活视频 | 精品999www| 欧美日韩在线视频观看 | 91网站免费观看 | 久久亚洲一区二区三区成人国产 | 久久影院在线观看 | 精选久久 | 一级毛片播放 | 国产精品久久久久久模特 | 国产精品久久国产精麻豆96堂 | 欧美精品在线免费观看 | 成年人激情在线 | 18被视频免费观看视频 | 亚洲婷婷日日综合婷婷噜噜噜 | 九九热精品在线播放 | 欧美日本免费一区二区三区 | av电影免费观看 | 午夜久久电影 | 精品一二三区视频 | 日日狠狠久久偷偷四色综合免费 | 91精品国产一区二区三区动漫 | 蜜桃传媒视频麻豆第一区免费观看 | 国产女同玩人妖 | 性生活视频网站 | 国产精品1区 | 麻豆视频国产在线观看 |