珂朵莉树

怎么说呢?这个东西不能说是一颗树

本质上就是一个set,维护区间值用的

好像也就只有两个操作,一个拆分,一个合并。

暴力找,暴力拆,暴力合并,暴力删除,暴力插入

struct kdl{
    int l,r,t;kdl(){}
    kdl(int x,int y,int z){l=x;r=y;t=z;}
    bool operator < (kdl x)const{return l<x.l;}
};
set<kdl> st;
set<kdl>::iterator spilt(int x){
    set<kdl>::iterator it=st.lower_bound(kdl(x,0,-1));
    if(it->l==x)return it;
    it=prev(it);int l=it->l,r=it->r,t=it->t;
    st.erase(it);st.insert(kdl(l,x-1,t));
    return st.insert(kdl(x,r,t)).first;
}
posted @ 2021-09-20 07:04  fengwu2005  阅读(53)  评论(1编辑  收藏  举报