51nod 1428 活動安排問題

2021-07-17 00:08:51 字數 910 閱讀 4396

有若干個活動,第i個開始時間和結束時間是[si,fi),同乙個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室? 

input

第一行乙個正整數n (n <= 10000)代表活動的個數。

第二行到第(n + 1)行包含n個開始時間和結束時間。

開始時間嚴格小於結束時間,並且時間都是非負整數,小於1000000000

output

一行包含乙個整數表示最少教室的個數。
input示例

3

1 23 4

2 9

output示例

2

先用結構體陣列存每個課的起止時間,然後開個優先佇列。對課的時間按上課的時間進行排序。

優先佇列裡存放每個教室的最後一節課上完的時間。

貪心的做法是每次取乙個課的時間,看看是否在佇列最前的時間要大,如果大就把最前的時間pop掉,然後放入這節課下課的時間。

如果要比最前時間要小,就要多開一間課室,把這個課的下課時間存入到佇列中。

這次又很撒比的沒有看清題目中的嚴格小於條件和範圍。

**如下:

#include#include#include#include#includeusing namespace std;

#define n 10010

struct rnga[n];

int num=0;

int cmp(rng q,rng p)

sort(a+1,a+1+n,cmp);

int res=1;

s.push(a[1].y);

for(i=2;i<=n;i++)

}printf("%d\n",res);

return 0;

}

51nod 1428 活動安排問題

1428 活動安排問題 有若干個活動,第i個開始時間和結束時間是 si,fi 同乙個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室?input 第一行乙個正整數n n 10000 代表活動的個數。第二行到第 n 1 行包含n個開始時間和結束時間。開始時間嚴格小於結束時間,並且時間都是...

51Nod 1428 活動安排問題

acm模版 將所有開始時間和結束時間存入乙個陣列內,然後排序,最後從頭至尾遍歷,初始化flag 0,遇見開始時間則flag 反之則更新res並flag include include include using namespace std const int maxn 1e4 10 struct p...

51nod 1428 活動安排問題

1428 活動安排問題 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 input 第一行乙個正整數n n 10000 代表活動的個數。第二行到第 n 1 行包含n個開始時間和結束時間。開始時間嚴格小於結束時間,並且時間都是非負整數,小於1000000000 ou...