#include<iostream>
#include<cstdio>
using namespace std;
struct node{
int l,r,sum;
}node[10000000];
int n,m,root[500010],size;
void update(int pre,int &k,int l,int r,int v){
k=++size;
node[k].sum=node[pre].sum+1;
if(l==r)return;
node[k].l=node[pre].l;node[k].r=node[pre].r;
int mid=(l+r)>>1;
if(v<=mid)update(node[pre].l,node[k].l,l,mid,v);
else update(node[pre].r,node[k].r,mid+1,r,v);
}
int ask(int L,int R)
{
int l=1,r=n,mid,x,y,tmp=(R-L+1)>>1;
......
阅读全文