首页 > 其他分享 >区间数组

区间数组

时间:2023-05-23 20:12:03浏览次数:33  
标签:数组 int push range heap 区间

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n;
struct Range{
    int l,r;
    bool operator<(const Range & w)const 
    {
        return l<w.l;
    }
}range[N];
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        int l,r;
        cin>>l>>r;
        range[i]={l,r};
    }
    sort(range,range+n);
    priority_queue<int,vector<int>,greater<int>> heap;
        for (int i = 0; i < n; i ++ )
    {
        auto r = range[i];
        if (heap.empty() || heap.top() >= r.l) heap.push(r.r);
        else
        {
            heap.pop();
            heap.push(r.r);
        }
    }
    cout<<heap.size()<<endl;
    return 0;
}

 

 

标签:数组,int,push,range,heap,区间
From: https://www.cnblogs.com/aixin52129211/p/17426249.html

相关文章

  • 最大不相交区间
    #include<bits/stdc++.h>usingnamespacestd;constintN=1e5+10;intn;structRange{intl;intr;booloperator<(constRange&w)const{returnr<w.r;}}range[N];intmain(){intn;cin>>n;for(inti=0;i<......
  • Golang - 获取指定区间范围内随机数
    1.go语言未提供获取指定区间范围内的随机数方法,只有一个参数获取(0,n)的随机数。2.可根据此方法获取指定区间随机数,先随机0到(m-n),再用加 n的方式解决例:[5,10],先生成[0,5],再加5packagemainimport("fmt""math/rand""time")funcmain(){//......
  • typedef的4种常见用法(含typedef定义结构体数组类型)
    typedef的4种常见用法:一、给已定义的变量类型起个别名二、定义函数指针类型三、定义数组指针类型四、定义数组类型总结一句话:“加不加typedef,类型是一样的“,这句话可以这样理解:没加typedef之前如果是个数组,那么加typedef之后就是数组类型;没加typedef之前如果是个函数指针,那......
  • 数组
    数组(遍历,最值,排序,查找)数据类型[]数组名=null数组名:new数据类型[长度];(动态初始化)初始化:就是为了数组中的数组元素分配内部空间,并为每个数组元素赋值数据类型:byte short int long    默认初始化值  0         float double      ......
  • 解锁各种js数组骚操作,总有你想要的!
    解锁各种js数组骚操作,总有你想要的!解锁各种js数组骚操作,总有你想要的!标签:javascript前端在开发中,数组的使用场景非常多,平日中也涉及到很多数组相关操作,对一些常见的操作方法进行总结和收藏,在开发中就能信手拈来,大大提高开发效率。本文在gitthub做了收录github.com/Michael-......
  • 数组递增的判断【python实现】
    有时候需要对某一组数组的数据进行判断是否递增的场景,比如我在开发一些体育动作场景下,某些肢体动作是需要持续朝着垂直方向向上变化,那么z轴的值是会累增的。同理,逆向考虑,递减就是它的对立面。下面是查找总结到的所有方式,如有补充可以评论区提出。资料参考来源:Checkiflist......
  • FZU 2236(离散化+树状数组)
    【离散化】借此题记一下离散化。离散化:当题目数据很大时,但数的个数不多,可以采用离散化,降低数值,便于计算。例如数列{89,14,9,1000,2};离散化后:{4,3,2,5,1};(此操作后,数值整体降低,甚至可以当数组下标使用了)具体操作参见本题代码。离散化三部曲:1.数组ha[]存储所有存在过的......
  • 图解LeetCode——1460. 通过翻转子数组使两个数组相等(难度:简单)
    一、题目给你两个长度相同的整数数组 target 和 arr 。每一步中,你可以选择 arr 的任意非空子数组 并将它翻转。你可以执行此过程任意次。如果你能让arr 变得与target 相同,返回True;否则,返回False。二、示例2.1>示例1:【输入】target=[1,2,3,4],arr=[2,4,1,3]......
  • 图解LeetCode——1441. 用栈操作构建数组(难度:中等)
    一、题目给你一个数组target和一个整数n。每次迭代,需要从 list={1,2,3...,n}中依次读取一个数字。请使用下述操作来构建目标数组target:"Push":从list中读取一个新元素,并将其推入数组中。"Pop":删除数组中的最后一个元素。如果目标数组构建完成,就停止读取更多元......
  • 数组
    一、一维数组的创建和初始化1、数组的创建数组书写的格式:数组类型    数组名[常量表达式];如:intarr[10];//创建一个数组,数组有10个元素,元素类型是int型。      charch[5];//创建一个数组,数组有5个元素,元素类型是char型。2、数组的初始化     以上述intarr[......