置頂 ny 14 會場安排問題

2021-06-23 00:26:59 字數 1421 閱讀 3119

會場安排問題

時間限制: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...