51-NOD-1428 活动安排问题
2017-12-25 17:46
225 查看
原题连接:点击打开链接
1428 活动安排问题
基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
收藏
关注
有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?
Input
Output
Input示例
Output示例
#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;
}
}
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;
}
}
相关文章推荐
- 51 NOD 1428 活动安排问题(树状数组+离散化)
- 51 nod 1428 活动安排 (线段的最大重合条数)
- 活动安排问题-2 (51nod)
- 51nod 1428 活动安排问题
- 1428 活动安排问题
- 51nod 1428 活动安排问题
- 51nod 1428 活动安排问题
- 51nod 1428 活动安排问题
- 51nod 1428 活动安排问题
- 51nod 1428 活动安排问题
- [51nod-1428]活动安排问题 题解
- 51nod 1428 活动安排问题
- 贪心+优先队列-51nod-1428 活动安排问题
- 51nod 1428 活动安排问题 (贪心+优先队列)
- 51nod 1428 活动安排问题
- 51Nod-1428 活动安排问题
- 【51Nod】1428 - 活动安排问题(贪心 || 思维)
- 51nod 1428 活动安排问题 贪心
- 51nod 1428 活动安排问题
- 51Nod 1428 活动安排问题(会场安排问题/贪心)