1901: Zju2112 Dynamic Rankings|树状数组套主席树
2016-03-16 08:35
363 查看
裸的树套树。。。
#include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<vector> #include<cstdio> #include<queue> #include<cmath> #include<set> #include<map> #define ll long long #define N 9000009 #define M 10010 using namespace std; int sc() { int i=0,f=1; char c=getchar(); while(c>'9'||c<'0'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9')i=i*10+c-'0',c=getchar(); return i*f; } int ch [2],sum ; int root[M],a[M]; int n,cnt,m,mx=1e9; void insert(int pre,int &x,int l,int r,int v,int k) { if(!x)x=++cnt; sum[x]=sum[pre]+k; if(l==r)return ; int mid=l+r>>1; if(v<=mid) ch[x][1]=ch[pre][1], insert(ch[pre][0],ch[x][0],l,mid,v,k); else ch[x][0]=ch[pre][0], insert(ch[pre][1],ch[x][1],mid+1,r,v,k); } void change(int x,int f,int k) { for(;x<=n;x+=x&-x) insert(root[x],root[x],0,mx,f,k); } int query(int l,int r,int K) { int a[22],b[22],la=0,lb=0; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); for(int i=l-1;i;i-=i&-i)a[++la]=root[i]; for(int i=r;i;i-=i&-i)b[++lb]=root[i]; int L=0,R=mx,n=max(la,lb); while(L!=R) { int mid=L+R>>1,Sum=0; for(int i=1;i<=n;i++) Sum+=sum[ch[b[i]][0]]-sum[ch[a[i]][0]]; int e=(Sum<K); if(e)K-=Sum,L=mid+1;else R=mid; for(int i=1;i<=n;i++) a[i]=ch[a[i]][e],b[i]=ch[b[i]][e]; } return L; } int main() { n=sc(),m=sc(); for(int i=1;i<=n;i++) a[i]=sc(),change(i,a[i],1); while(m--) { char s[5]; scanf("%s",s); if(s[0]=='Q') { int l=sc(),r=sc(),K=sc(); printf("%d\n",query(l,r,K)); } else { int x=sc(),y=sc(); change(x,a[x],-1); change(x,a[x]=y,1); } } return 0; }
相关文章推荐
- 6.<1>四则运算的研究[栈]
- mongodb与sql语句对照表
- Python核心编程读书笔记0
- .NET Framework 各版本区别
- leetCode 53.Maximum Subarray (子数组的最大和) 解题思路方法
- DOM4J介绍与代码示例
- pku1080 Human Gene Functions DP
- perhaps the designated entry point is not set?
- LeetCode Rotate List
- HDOJ 1418 抱歉 (规律)
- .NET Framework 各版本介绍和下载链接汇总
- Windows_CMD_临时环境变量
- 开源 java CMS - FreeCMS2.4 操作日志
- UESTC 758 P酱的冒险旅途
- 传统的程序员将会被淘汰
- 如何得到Ubuntu UI Toolkit的版本
- PHP安全有帮助的一些函数
- 年龄巧合分离数,报时助手字符串数组,大数加法
- lintcode-medium-Combinations
- 再谈百度:KPI、无人机,以及一个必须给父母看的案例