演算法題 安排會議室 貪心演算法的應用

2021-08-07 15:32:36 字數 1768 閱讀 2026

題目描述

[題目描述]

在大公司裡,會議是很多的,開會得有場子,要場子你得先在電子流裡預訂。

如果你是專案組新來的小弟,那麼恭喜你,每天搶訂會議室的任務就光榮的分給你了。

老大要求你盡可能多的訂會議室,但是這些會議室之間不能有時間衝突。

[input]

input檔案中可以包括多個測試案例。

t(t ≤ 20),輸入檔案的第一行表示檔案中有多少個測試案例。

n(1 ≤ n ≤ 500),每個測試案例的第一行表示會議室的數目。

每個測試案例中,除第一行以外表示各個會議室的資訊。每行會有3個數字,分別表示會議編號、會議起始時間、會議結束時間。

[output]

輸出可以安排的最大會議數目

[i/o example]

input26

1 1 10

2 5 6

3 13 15

4 14 17

5 8 14

6 3 12

151 4 8

2 2 5

3 2 6

4 4 6

5 2 3

6 1 6

7 4 7

8 3 5

9 3 8

10 1 2

11 1 7

12 2 4

13 5 6

14 4 5

15 7 8

output35

練習模板

#include 

#include 

using

namespace std;

int main(

int argc, 

char** argv)

return

0; //

your program should return 0 on normal termination.}

**實現

題目中要求會議時間不可以衝突,所以可以利用貪心演算法,盡可能的選擇會議時間結束較早的會議室,這樣就能安排最多的會議室。

#include 

#include 

#include 

#include 

using

namespace std;

class meetingroom 

};bool isendearly(

const meetingroom r1, 

const meetingroom r2) 

int main(

int argc, 

char** argv)

//sort rooms for end time

sort(rooms.begin(), rooms.end(), isendearly);

//use greedy algorithm to solve promblem

count = 

1;meetingroom prev = rooms[

0];for (vector::iterator it = rooms.begin() + 

1; it != rooms.end(); it++)  }

cout << count << endl; }

return

0; }

貪心演算法 堆 安排會議室

一些專案要占用乙個會議室宣講,會議室不能同時容納兩個專案的宣講。給你每乙個專案開始的時間和結束的時間 給你乙個陣列,裡面是乙個個具體的專案 你來安排宣講的日程,要求會議室進行 的宣講的場次最多。返回這個最多的宣講場次。貪心 按照結束時間最早排序 public class bestarrange 小根...

貪心演算法 會議室問題

有一堆會議,每個會議都有開始時間和結束時間,問至少需要幾個房間可以安排下這些會議?解決思路 這是個貪心類問題,每個會議都有結束時間和開始時間,可以對兩個時間分開儲存並排序,從最先開始的會議開始遍歷,只要當前會議的開始時間小於結束時間陣列中的第乙個結束時間,就需要重新開闢乙個房間。接著看下乙個會議的開...

演算法(31) 貪心(1) 會議室安排 C

會議室安排 輸入 一組會議的其實終止時間比如 7,8 8,10 9,12 10,15 就乙個會議室,如何安排會議室的利用率最高。輸出 安排會議的個數,或者是安排了哪些會議。此時返回3 7 8 8 10 10 15 思路 按結束時間排序 資料多時用小根堆 上 貪心1 會議室安排 小根堆 class p...