基础-贪心
题目要求,给n对整数对存在于数轴上
不可重叠,寻找存在最多的整合对数
贪心操作,对整数对的后一个数排序
v[i-1].second<=v[i].first
才可以进行cnt++
操作
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<vector>
#include<map>
using namespace std;
int N,cnt,flag;
vector< pair<int,int> > v;
bool cmp(pair<int,int> x, pair<int,int> y){
return x.second < y.second;
}
int main(){
cin>>N;
while(N--){
int s,e;
scanf("%d%d",&s,&e);
v.push_back(make_pair(s,e));
}
sort(v.begin(), v.end(), cmp);
vector< pair<int, int> >::iterator it;
for(it = v.begin(); it < v.end(); it++){
// cout<< it->first <<' '<< it->second<<endl;
if(it->first >= flag){
flag = it->second;
cnt++;
}
}
cout<<cnt<<endl;
}