这题的解题方法用的是贪心算法中的最大不相交区间覆盖的问题,详细解题思路点击打开链接
比较简单的一道题目,下面直接贴代码
#include <iostream>
#include <algorithm>
using namespace std;
struct sb
{
int begin,end;
}a[10005];
bool cmp(sb t1,sb t2)
{
return t1.end<t2.end;
}
int main()
{
int m,n,i,j,sum,max;
cin>>m;
while(m--)
{
cin>>n;
for(i=0;i<n;i++)
{
cin>>a[i].begin>>a[i].end;
}
std::sort(a,a+n,cmp);
sum=1;
j=0;
for(i=1;i<n;i++)
{
if(a[i].begin>a[j].end)
{
sum++;
j=i;;
}
}
cout<<sum<<endl;
}
return 0;
}