首页 > 其他分享 >区间合并 (9/3)

区间合并 (9/3)

时间:2023-09-03 23:22:26浏览次数:24  
标签:2e9 end res 合并 segs seg start 区间

一、区间合并

1、用sort排序 排 vector的 pair 先排左边再排右边

void merge(vector<PII> &segs){
    vector<PII> res;
    // 左端点排序
    sort(segs.begin(), segs.end());
    // 左右端点初始化,-无穷
    int start = -2e9, end = -2e9;
    for(auto seg: segs){
        if(end < seg.first){
            // 初始的[-无穷,-无穷]区间要跳过,不能装入
            if(start != -2e9) res.push_back({start, end});
            start = seg.first, end = seg.second;
        }
        else end = max(end, seg.second);
    }
    // 有两个作用,1.是防止n为0,把[-无穷,-无穷]压入;2.是压入最后一个(也就是当前)的区间,若n>=1,if可以不要
    if (start != -2e9) res.push_back({start, end});
    //覆盖segs
    segs = res;
}

2、将前几个模板进行了复习

标签:2e9,end,res,合并,segs,seg,start,区间
From: https://www.cnblogs.com/daimazhishen/p/17675832.html

相关文章

  • 防止某个分支被合并提交
    通过githook防止开发人员推送test代码到远端#!/bin/sh#如果当前分支不是test分支,且合并了test的代码,不允许推送到远程仓库TEST_BRANCH="test"BRANCH=$(gitrev-parse--abbrev-refHEAD)iftest$BRANCH!=$TEST_BRANCHthenif[[$(gitbranch--no-merged$BRANCH$......
  • 区间dp入门选讲
    目录区间dp入门选讲合并果子括号匹配PalindromeAgainPalindromeStringpainter搬寝室配对区间dp入门选讲合并果子传送门设\(f_{i,j}\)表示合并区间\([i,j]\)的最小代价,\(\begin{aligned}s_i=\sum^{i}_{k=1}a_k\end{aligned}\),显然有\(\begin{aligned}f_{i,j}=\min(f_{......
  • 使用 bc4 解决 git 合并冲突问题
    博客地址:https://www.cnblogs.com/zylyehuo/STEP1:安装beyondcompare安装地址:https://www.scootersoftware.com/downloadSTEP2:查看beyondcompare软件安装路径STEP3:在git中配置(仅对当前项目有效)gitconfig--globalmerge.toolbc4gitconfig--globalmergeto......
  • 2023-09-01:用go语言编写。给出两个长度均为n的数组, A = { a1, a2, ... ,an }, B = { b1
    2023-09-01:用go语言编写。给出两个长度均为n的数组,A={a1,a2,...,an},B={b1,b2,...,bn}。你需要求出其有多少个区间[L,R]满足:数组A中下标在[L,R]中的元素之和在[La,Ra]之中,数组B中下标在[L,R]中的元素之和在[Lb,Rb]之中。输入:第一行有一个正整数N(1<=N<=100000),代表两......
  • 2023-09-01:用go语言编写。给出两个长度均为n的数组, A = { a1, a2, ... ,an }, B = { b1
    2023-09-01:用go语言编写。给出两个长度均为n的数组,A={a1,a2,...,an},B={b1,b2,...,bn}。你需要求出其有多少个区间[L,R]满足:数组A中下标在[L,R]中的元素之和在[La,Ra]之中,数组B中下标在[L,R]中的元素之和在[Lb,Rb]之中。输入:第一行有一个正整数N(1<=N<=10000......
  • 挑程:矩阵乘积链(区间dp)
    传送区间dp点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintN=110;intp[N],dp[N][N];voidsolve(){intn;cin>>n;for(inti=1;i<=n;++i)cin>>p[i-1]>>p[i];memset(dp,0x3f,sizeofdp);for(inti......
  • 动态规划-区间DP
    动态规划-区间DP1.区间DP的概念区间DP,顾名思义就是在一个个的区间上进行DP。2.区间DP问题-石子合并https://www.acwing.com/problem/content/284/我们还是从动态规划的两个角度来阐述该问题。1.状态表示本问题,我们可以用二维状......
  • python列表的合并
    #已知列表list1=[4,5,2,7]和list2=[3,6],请将他们合并为一个列表,并按照从大到小重新排序打印输出list1=[4,5,2,7]list2=[3,6]list3=[]list3.extend(list1)list3.extend(list2)list3.sort()print(list3)运行结果:......
  • UOJ-783 新年的双区间操作
    题意给定一个序列\(a\),给一个操作序列\(m\),每个操作形如\((l_i,r_i,x_i,l'_i,r'_i,y_i)\),表示如果区间\([l_i,r_i]\)最大值大于等于\(x_i\)则将区间\([l'_i,r'_i]\)对\(y_i\)取\(\max\)。现在进行\(q\)次修改,每次先将\(a_p\)修改为\(v\)(这个修改是累积......
  • 6-6 Oracle表复杂查询 -合并查询-增删改数据
    Oracle基础知识整理:C站下载链接1Oracle基础知识2Oracle安装(附详细安装操作手册)3Oracle基本使用4Oracle用户管理6-1Oracle表的管理-创建修改表6-2Oracle表的管理-表查询6-3Oracle表的管理-表复杂查询6-4Oracle表复杂查询-多表查询6-5Oracle表复杂查询-子查询文章......