会场安排问题

来源:互联网 发布:javascript 规范 编辑:程序博客网 时间:2024/04/29 12:21

题目描述:

学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。

输入:

第一行是一个整型数m(m<100)表示共有m组测试数据。
每组测试数据的第一行是一个整数n(1<n<10000)表示该测试数据共有n个活动。
随后的n行,每行有两个正整数Bi,Ei(0<=Bi,Ei<10000),分别表示第i个活动的起始与结束时间(Bi<=Ei)

输出:

对于每一组输入,输出最多能够安排的活动数量。
每组的输出占一行

AC代码如下:

#include<iostream>#include<algorithm>using namespace std;struct T{int begin,end;       //定义结构体成员变量};bool cmp(T a, T b){return a.end < b.end ;}int main(){int i;int n,m,count;    struct T a[10000];    //声明一个结构体数组    cin >> n;while(n--){cin >> m;for( i=0; i<m; i++){cin >> a[i].begin >> a[i].end;}    sort(a,a+m,cmp);    count=1;    int t=0;for(int i=0; i<m; i++){if(a[t].end < a[i].begin){count++;        t=i;}}cout << count << endl;}return 0;}
运行结果如下:

思路:其实考查的是利用sort函数对结构体二维数组的排序


0 0
原创粉丝点击