线段树模板题
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 263000
struct tree
{
int left,right,count;
}p[N*3];
void build(int l,int r,int num)
{
int mid=(l+r)/2;
p[num].left=l;
p[num].right=r;
if(l==r)
{
p[num].count=1;return;
}
build(l,mid,num*2);
build(mid+1,r,num*2+1);
p[num].count=p[num*2].count+p[num*2+1].count;
}
int find(int i,int num)
{
int sum;
if(p[i].left==p[i].right)
{
p[i].count=0;return p[i].left;
}
if(nu......
阅读全文