https://vjudge.net/problem/ZOJ-4120
如果一起结束,就让开始早的先选
如果不是这样,就让先结束的先选
3
1 3
1 3
2 2
做题时,最好有一个人,不知道另外两个人的算法
set 扔外边,注意清空
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+7;
struct node{
int l,r;
}se[N];
bool cmp(node a,node b){
if(a.r==b.r)return a.l<b.l;
else return a.r<b.r;
}
set<int> si;
int main(){
int t;scanf("%d",&t);
while(t--){
//memset(pp,0,sizeof(pp));
//printf("%d\n",pp[0]);
si.clear();
int n;scanf("%d",&n);
for(int i=0;i<n;i++)scanf("%d%d",&se[i].l,&se[i].r);
sort(se,se+n,cmp);
// for(int i=0;i<n;i++)
// printf("%d\n",se[i].l);
int num=0;
for(int i=0;i<n;i++){
for(int j=se[i].l;j<=se[i].r;j++){
// if(pp[j]==0){
// pp[j]=1;num++;break;
// }
if(si.find(j)==si.end()){
si.insert(j);num++;break;
}
}
}
printf("%d\n",num);
}
return 0;
}