题意:给出每一个订单的时间,求出在时间不重叠的情况下,最多能接多少单、
思路:排序贪心、,你想要不重叠的数量最多,那么肯定先结束的肯定要先做,水题了
#include<cmath>
#include<algorithm>
#include<cstdio>
#include<string>
#include<vector>
using namespace std;
const int qq = 5e5+10;
struct Seg{
int l,r;
bool operator < (const Seg &a)const{
if(r==a.r) return l>a.l;
return r<a.r;
}
};
vector<Seg>v;
int main(){
Seg tmp;
int n;scanf("%d",&n);
for(int i=0; i<n; ++i){
scanf("%d%d",&tmp.l, &tmp.r);
v.push_back(tmp);
}
sort(v.begin(), v.end());
//for(int i=0; i<n; ++i)
// printf("%d %d\n", v[i].l, v[i].r);
int res=1,maxn=v[0].r;
for(int i=1; i<n; ++i)
if(v[i].l>maxn) res++,maxn=v[i].r;
printf("%d\n", res);
return 0;
}