区间合并

3. 区间合并

原理:区间排序左端点有交集的区间可以合并

struct OI{int l, r;}num[N];

inline int cmp(OI a, OI b){return a.l < b.l;}  //按照左端点排序

sort(num+1, num+1+n,cmp);

void combine(){
    int st = num[1].l, ed = num[1].r;res++; //起始作为一个区间, 所以res起始为 1 个区间
    for(int i = 2; i <= n; i++){
        if(num[i].l <= ed)       // 可以合并成一个区间
            ed = max(ed,num[i].r);
        else
            st = num[i].l, ed = num[i].r, res++;// 不能合并成一个区间
    }
}
上一篇:拼数


下一篇:Bandwidth(爆搜)