51Nod 1428 活動安排問題

2021-08-22 17:59:00 字數 750 閱讀 5103

題目:

input

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

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

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

output

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

sample input

3

1 23 4

2 9

sample output

2
解題思路:首先開結構體陣列,然後根據起點排序,之後開優先佇列,按照大端堆,不得不說優先佇列真的很奇妙,不服氣不行,這個玩意好用極了。將每個的結尾壓入優先佇列,去跟每個起點比較,如果小於起點的話,pop掉,因為肯定不會在和他們相交了。

ac**:

#include#include#include#include#include#define maxn 10000

using namespace std;

struct nodett[maxn];

bool cmp(node a,node b)

q.push(tt[i].end);

int cnt=q.size();

ans=max(ans,cnt);

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

} 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 活動安排問題

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