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