题目传送门sxazr
把每个活动按结束时间进行排序;
如果当前枚举的s[i]>=f[k],(k为记录的上一个活动)ans++;
用结构体sort排序好一点;
代码
#include <cstdio>
#include <algorithm>
using namespace std;
int n,ans;
struct st{
int s,f;
}nod[1001];
bool cmp(st x,st y)
{
return x.f<y.f;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d%d",&nod[i].s,&nod[i].f);
sort(nod+1,nod+n+1,cmp);
int k=1;ans++;
for(int i=2;i<=n;i++){
if(nod[i].s>=nod[k].f)
ans++,k=i;
}
printf("%d",ans);
return 0;
}