题解:本题主要考查排序,贪心。结束时间越早的比赛参加了就最多,那么以结束时间点进行排序,再找不重合的区间。
代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
int n,st,ans=0,i,j;
struct Node
{
int s,e;
}a[2345700];
bool cmp(Node a1,Node a2)
{
return a1.e<a2.e;
}
int main()
{
cin>>n;
for(i=1;i<=n;i++)cin>>a[i].s>>a[i].e;
sort(a,a+n+1,cmp);
st=a[i].e;
for(j=1;j<=n;j++)
{
if(a[j].s>=st)
{
ans++;
st=a[j].e;
}
}
cout<<ans;
return 0;
}