會場安排問題
時間限制:3000 ms | 記憶體限制:65535 kb
難度:4
描述
學校的小禮堂每天都會有許多活動,有時間這些活動的計畫時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排乙個活動。現在小劉有一些活動計畫的時間表,他想盡可能的安排更多的活動,請問他該如何安排。
輸入
第一行是乙個整型數m(m<100)表示共有m組測試資料。
每組測試資料的第一行是乙個整數n(1輸出
對於每一組輸入,輸出最多能夠安排的活動數量。
每組的輸出佔一行
樣例輸入2
21 10
10 11
31 10
10 11
11 20
樣例輸出1
2 提示
**
經典題目
解題思路:
1、 首先把活動按照結束時間的大小由小到大排序。
2、 然後判斷第 i 個活動的結束時間小於第i+1 個活動的開始時間即可。
程式**:
#include
#include
#include
struct hd
int a;
int b; // 定義乙個結構體 方便排序
}s[10005];
int cmp(const void *a,const void *b)
struct hd *c = (hd*)a;
struct hd *d = (hd*)b;
if(c->b==d->b)
return c->a - d->a;
return c->b - d->b;
int main()
int m,n,i,j,sum;
scanf("%d",&m);
while(m--)
memset(s,0,sizeof(s));
scanf("%d",&n);
for(i=0;iscanf("%d %d",&s[i].a,&s[i].b);
qsort(s,n,sizeof(s[0]),cmp);
j=s[0].b;
sum=0;
for(i=1;iif(s[i].a>j) // 判斷開始時間大於上乙個的結束時間即可
sum++;
j=s[i].b;
printf("%d\n",sum+1);
return 0;
ny14 會場安排問題
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 學校的小禮堂每天都會有許多活動,有時間這些活動的計畫時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排乙個活動。現在小劉有一些活動計畫的時間表,他想盡可能的安排更多的活動,請問他該如...
14 會場安排問題
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 學校的小禮堂每天都會有許多活動,有時間這些活動的計畫時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排乙個活動。現在小劉有一些活動計畫的時間表,他想盡可能的安排更多的活動,請問他該如...
nyoj 14 會場安排問題
選擇不相交的區間,不過這道題數有點大。我好幾次超時。看了網上的一些改了很多。呃。都快改的和人家一樣了。主要是用了乙個資料結構struct和algorithm。否則超時,因為algorithm用的是快速排序,效率很高!include include include using namespace st...