AcWing 908. 《算法基础课》贪心--最大不相交区间数量
原题链接
简单
作者:
藕丝泥霸
,
2023-12-17 22:43:46
,
所有人可见
,
阅读 40
思路
- 同 区间选点
c++
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
typedef pair<int,int> PII;
vector<PII> segs;
int n;
int merge(vector<PII>& segs){
int st=-2e9,ed=-2e9,cnt=0;
sort(segs.begin(),segs.end());
for(auto seg:segs){
if(ed<seg.first){
cnt+=1;
st=seg.first,ed=seg.second;
}
else{
st=max(st,seg.first);
ed=min(ed,seg.second);
}
}
return cnt;
}
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
int l,r;
scanf("%d%d",&l,&r);
segs.push_back({l,r});
}
printf("%d\n",merge(segs));
return 0;
}