51nod1428 優先佇列

2022-02-20 01:02:59 字數 709 閱讀 3944

題意:中文題誒~

思路:貪心

問最少要多少教室就是求最多有多少個時間段產生了交集咯。我們先用結構體儲存區間並將其按照左端點公升序排列,若左端點相同則按右端點公升序排列。

接下來遍歷所有區間,並維護乙個優先佇列,其中儲存區間右端點值。對於當前區間,我們將優先佇列中所有比當前區間左端點小的元素刪除(因為其所在區間不會與當前區間相交嘛),然後再將當前區間的右端點加入優先佇列。當前優先佇列的大小就是當前能得到的最大交集數。其中道理並不複雜就不多說啦。。。

**:

1 #include 2

#define maxn 10010

3using

namespace

std;45

struct

nodegg[maxn];89

intcmp(node a, node b)

1213

int main(void

)19 sort(gg, gg+n, cmp);

20 priority_queue, greater >q;

21for(int i=0; i)else29}

30q.push(gg[i].r);

31int cnt=q.size();

32 ans=max(ans, cnt);33}

34 cout << ans <35return0;

36 }

51nod 1428 (貪心 優先佇列)

input 第一行乙個正整數n n 10000 代表活動的個數。第二行到第 n 1 行包含n個開始時間和結束時間。開始時間嚴格小於結束時間,並且時間都是非負整數,小於1000000000 output 一行包含乙個整數表示最少教室的個數。思路 發現好多貪心的題目都是用優先佇列來解決的。著個題目實際上...

51nod 1428 活動安排問題(優先佇列)

1428 活動安排問題 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 有若干個活動,第i個開始時間和結束時間是 si,fi 同乙個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室?input 第一行乙個正整數n n 10000 代表活動的個數。第二...

51 Nod1428活動安排

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