题目:
给定 𝑁 个闭区间 [ai,bi][𝑎𝑖,𝑏𝑖],请你将这些区间分成若干组,使得每组内部的区间两两之间(包括端点)没有交集,并使得组数尽可能小。
输出最小组数。
代码:
#include<bits/stdc++.h>
using namespace std;
multiset<int> s;
pair<int,int> range[100005];
int n;
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
int x,y;
scanf("%d%d",&x,&y);
range[i]={x,y};
}
sort(range,range+n,[&](pair<int,int> a,pair<int,int> b)->bool{return a.first<b.first;});
for(int i=0;i<n;i++){
auto t=range[i];
if(s.empty()||t.first<=*s.begin()){
s.insert(t.second);
continue;
}
else{
s.erase(s.begin());
s.insert(t.second);
}
}
printf("%d",s.size());
return 0;
}
实战题目:
蓄栏预定:
991

被折叠的 条评论
为什么被折叠?



