#include <iostream>//O(NlogN) #include <queue> #include<algorithm> using namespace std; priority_queue<int,vector<int>,greater<int>>pq; int n,ans; struct node{ int s,e; bool operator<(node b){ return s<b.s; } }a[10005]; int main() { cin>>n; for(int i=0;i<n;i++){ scanf("%d %d",&a[i].s,&a[i].e); } sort(a,a+n); for(int i=0;i<n;i++){ while(!pq.empty()&&pq.top()<=a[i].s){ pq.pop(); } pq.push(a[i].e); int t=pq.size(); ans=max(ans,t); } cout<<ans; }
第2题【算法讲解027【必备】堆结构常见题】 https://www.bilibili.com/video/BV1Gm4y1p7UE/?share_source=copy_web&vd_source=5065fa61022691e8df35c771a30e6d29