区间分组指使得区间内不交叉的线段最多的分组方法。
做法:用贪心的思维,将各区间按结束时间从小到大排序,只要不与前一个相交即可加入分组。
代码:
#include<bits/stdc++.h>
using namespace std;
const int N = 110;
struct stu
{
int l,r;
} a[N];
bool cmp(stu q,stu e)
{
return q.r < e.r;
}
int main()
{
int n;
while(cin>>n && n)
{
for(int i = 0; i < n; i ++ )
cin>>a[i].l>>a[i].r;
sort(a,a + n,cmp);
int res = 1;
int x = a[0].r;
for(int i = 1; i < n; i ++ )
if(a[i].l >= x)
{
res ++ ;
x = a[i].r;
}
cout<<res<<endl;
}
return 0;
}