首页 > 其他分享 >求区间交集与并集

求区间交集与并集

时间:2023-02-19 16:36:43浏览次数:32  
标签:2e9 交集 res back segs seg 区间 first

代码

求区间交集

void get_intersection(vector<PII> &segs)
{
    vector<PII> res;
    
    sort(segs.begin(), segs.end());
    int l = -2e9, r = 2e9;
    for (auto seg : segs) {
        if (seg.first > r) {
            if (l != -2e9) res.push_back({l, r});
            l = seg.first;
            r = seg.second;
		} else {
            l = max(l, seg.first);
            r = min(r, seg.second);
        }
    }
    if (l != -2e9) res.push_back({l, r});
    
    segs = res;
}

求区间并集

void get_union(vector<PII> &segs)
{
    vector<PII> res;
    
    sort(segs.begin(), segs.end());
    int l = -2e9, r = 2e9;
    for (auto seg : segs) {
        if (seg.first > r) {
            if (l != -2e9) res.push_back({l, r});
            l = seg.first;
            r = seg.second;
		} else {
            r = max(r, seg.second);
        }
    }
    if (l != -2e9) res.push_back({l, r});
    
    segs = res;
}

标签:2e9,交集,res,back,segs,seg,区间,first
From: https://www.cnblogs.com/cong0221/p/17134953.html

相关文章

  • ACwing 区间最大公约数题解 线段树(附证明)
    算进区间最大公因数单点线段树 https://www.acwing.com/problem/content/247/题目:给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:Clrd,表......
  • 经典问题 2 —— 动态不包含区间与点完美匹配问题
    问题描述你需要维护一个数据结构,支持:加入/删除一个区间,加入/删除一个点,查询是否存在区间到点的完美匹配,使每个区间都在匹配中。保证任何时候不存在两个互相包含的区间。......
  • Java----判断两组数字区间是否有交集
    publicstaticvoidmain(String[]args){System.out.println(judge(newint[]{1,3},newint[]{2,5}));System.out.println(judge(newint[]{1,3},ne......
  • [Leetcode]435. 无重叠区间
    435.无重叠区间给定一个区间的集合 intervals ,其中intervals[i]=[starti,endi] 。返回需要移除区间的最小数量,使剩余区间互不重叠 。示例1:输入:intervals......
  • postgre 的ST_Intersection 求面的交集
    一开始是给了一坨面的数据 需要将面按照街镇进行分割 我想的是改库表 对geometry数据进行处理   后面发现了st_intersection这个函数 求两个面的交集 ......
  • 一个经典的区间 dp 问题
    有一个数轴,上面有\(n\)个点,坐标为\(a_1,\cdots,a_n\)。你一开始在位置\(S\),你可以以\(1\)的速度行走。令\(t_i\)表示第一次走到第\(i\)个点的时间,最小化\(\su......
  • 区间插入,维护本质相同集合对数 (离线)
    有\(n\)个集合,\(m\)次操作,第\(i\)次操作选择一个区间\([l_i,r_i]\),在这些集合里插入\(i\),每次操作后查询本质相同集合对数。先用可持久化线段树来存每个集合。......
  • JavaScript 数组求交集
    letarr1=[1,2,3,4,5];letarr2=[4,5,6,7,8];//数组求交集functionarrayIntersection(arr1,arr2){//先去重letarr1Unique=[...newSet(arr1)];......
  • P8649 [蓝桥杯 2017 省 B] k 倍区间
    题目链接:https://www.luogu.com.cn/problem/P8649方法一:模拟暴力(20分)#include<bits/stdc++.h>usingnamespacestd;constintmax_n=100010;intn,k,a[max_n];lo......
  • 算法刷题-插入区间、杨辉三角、移除链表元素
    插入区间给你一个无重叠的,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例1:输入......