NYOJ 14 会场安排问题
生活随笔
收集整理的这篇文章主要介绍了
NYOJ 14 会场安排问题
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
会场安排问题
时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述输入
每组测试数据的第一行是一个整数n(1<n<10000)表示该测试数据共有n个活动。
随后的n行,每行有两个正整数Bi,Ei(0<=Bi,Ei<10000),分别表示第i个活动的起始与结束时间(Bi<=Ei)
每组的输出占一行
注意:如果上一个活动在t时间结束,下一个活动最早应该在t+1时间开始
代码:
#include<stdio.h> #include<stdlib.h> struct node {int begin;int end; }num[10005]; int cmp(const void *a,const void *b) {return ((*(struct node *)a).end-(*(struct node *)b).end); } int main() {int T,n,i,min,count;scanf("%d",&T);while(T--){scanf("%d",&n);for(i=0;i<n;i++)scanf("%d%d",&num[i].begin,&num[i].end);// 按结束时间从小到大排序qsort(num,n,sizeof(num[0]),cmp);min=-1;count=0;for(i=0;i<n;i++) // 贪心法求得最优值{if(num[i].begin>min){count++;min=num[i].end;}}printf("%d\n",count);}return 0; }
总结
以上是生活随笔为你收集整理的NYOJ 14 会场安排问题的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 我想说:mysql 的 join 真的很
- 下一篇: 一问带你区分清楚Authenticati