kd-tree模板

struct Node{int d[2],mi[2],ma[2],ch[2];}p[N<<1],now;
int n,m,D,cnt,root,ans;
inline int cmp(Node a,Node b){return a.d[D]>1;nth_element(p+l,p+o,p+r+1,cmp);
//  for(int i=1;i<=n;i++) printf("%d %d\n",p[i].d[0],p[i].d[1]);
    if(lo) Build(rc,o+1,r,d^1);
    push_up(o);
}
void insert(int &o,int d){
    if(!o) o=++cnt,p[o]=now;
    else if(now.d[d]

转自BeiYu-oi's Blog

你可能感兴趣的:(kd-tree模板)