解题思路:用结构体对结尾排序,从第一个的结束点比后面的开始点,若小,活动数就加一,依次类推。
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 struct hui 7 { 8 int s; 9 int e; 10 } a[10000]; 11 bool cmp(hui a,hui b) 12 { 13 return a.e < b.e; 14 } 15 int main() 16 { 17 int n,i,m; 18 scanf("%d",&m); 19 while(m--) 20 { 21 scanf("%d",&n); 22 int count=1; 23 for(i=0; i<n; i++) 24 scanf("%d%d",&a[i].s,&a[i].e); 25 sort(a,a+n,cmp); 26 for(i=0; i<n-1; i++) 27 if(a[0].e<a[i+1].s) 28 { 29 count++; 30 a[0].e=a[i+1].e; 31 } 32 printf("%d ",count); 33 } 34 return 0; 35 }