51nod 1428 活動安排問題

2022-03-02 12:33:44 字數 951 閱讀 5451

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

input

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

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

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

output

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

3

1 23 4

2 9

output示例

2
貪心加優先佇列。

先讓開始時間排序,一開始開乙個教室,把結束時間壓入佇列,然後遍歷。開始時間》=隊頂的話就說明可以使用對頂這個教室。否則就重新開一間教室。

1 #include 2

using

namespace

std;

3const

int n = 10010;4

struct

nod nod[n];

7intn;8

bool cmp(nod &a, nod &b)

11int

main()

17 sort(nod,nod+n,cmp);

18 que.push(nod[0

].r);

19int ans = 1;20

for(int i = 1; i < n; i ++) else

que.push(nod[i].r);

25int max =que.size();

26 ans =max(ans,max);27}

28 cout << ans <

29return0;

30 }

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...