nyoj 會場安排

描述

學校的小禮堂每天都會有許多活動,有時間這些活動的計劃時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排一個活動。現在小劉有一些活動計劃的時間表,他想儘可能的安排更多的活動,請問他該如何安排。

輸入

第一行是一個整型數m(m<100)表示共有m組測試數據。

每組測試數據的第一行是一個整數n(1<n<10000)表示該測試數據共有n個活動。

隨後的n行,每行有兩個正整數Bi,Ei(0<=Bi,Ei<10000),分別表示第i個活動的起始與結束時間(Bi<=Ei)

輸出

對於每一組輸入,輸出最多能夠安排的活動數量。

每組的輸出佔一行

樣例輸入

2

2

1 10

10 11

3

1 10

10 11

11 20

樣例輸出

1

2

提示

注意:如果上一個活動在t時間結束,下一個活動最早應該在t+1時間開始 


-----------------------------------------------------------------------------------------------------------------------------------------

簡單貪心;

#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
struct node
{
int start,end;
}a[10100];
int cmp(node a,node b)
{
return a.end < b.end;
}
int main()
{
int t,n;
int i,cont;
int s,d;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d%d",&a[i].start,&a[i].end);
//qsort(a,n,sizeof(a[0]),cmp);
sort(a,a+n,cmp);
cont=1;s=a[0].start;d=a[0].end;
for(i=1;i<n;i++)
{
if(a[i].start>d)
{
s = a[i].start;// s可以去掉
d = a[i].end;
cont++;
}
}
printf("%d\n",cont);
}
return 0;
}

發佈了62 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章