會場安排問題
時間限制:3000 ms | 內存限制:65535 KB
難度:4
- 描述
- 學校的小禮堂每天都會有許多活動,有時間這些活動的計劃時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排一個活動。現在小劉有一些活動計劃的時間表,他想儘可能的安排更多的活動,請問他該如何安排。
代碼:
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std ;
struct act{
int begin;
int end;
}activity[10005];
bool cmp(act a,act b)
{
return a.end<b.end;
}//按活動結束時間從小到大排序
int main()
{
int T;
cin>>T;
while(T--)
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
scanf("%d%d",&activity[i].begin,&activity[i].end);
}
sort(activity,activity+n,cmp);
int ans=1;
int en=activity[0].end;
for(int i=1;i<n;i++)
{
if(activity[i].begin>en)
{
ans++;
en=activity[i].end;
}
}
cout<<ans<<endl;
}
return 0;
}