您的位置:首页 > 其它

51-NOD-1428 活动安排问题

2017-12-25 17:46 225 查看
原题连接:点击打开链接

1428 活动安排问

基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题


 收藏


 关注

有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室? 

Input
第一行一个正整数n (n <= 10000)代表活动的个数。
第二行到第(n + 1)行包含n个开始时间和结束时间。
开始时间严格小于结束时间,并且时间都是非负整数,小于1000000000


Output
一行包含一个整数表示最少教室的个数。


Input示例
3
1 2
3 4
2 9


Output示例
2


#include<bits/stdc++.h>
using namespace std;
struct Time{
int st;
int endd;
}action[10001];

bool cmp(Time a,Time b)
{
if(a.endd==b.endd)
return a.st<=b.st;
return a.endd<b.endd;
}

main()
{
int n; //活动总数
while(~scanf("%d",&n)&&n)
{
for(int i=0;i<n;i++)
{
cin >> action[i].st >> action[i].endd;
}
sort(action,action+n,cmp);
int cnt=0,s; // 记录能进行的活动数

for(int j=0;j<n;j++)
{
s=1;
for(int i=j+1;i<n;i++)
{
if(action[j].endd>action[i].st)
{
s++;
}
}
cnt=max(cnt,s);
}
cout << cnt << endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: