C 實現會議安排問題(貪心問題)

2021-09-25 09:52:07 字數 1491 閱讀 6010

一些專案要占用乙個會議室宣講,會議室不能同時容納兩個專案的宣講。 給你每乙個專案開始的時間和結束的時間(給你乙個陣列,裡面 是乙個個具體的專案),你來安排宣講的日程,要求會議室進行的宣講的場次最多。返回這個最多的宣講場次。

數學描述:

如下圖所示我們給定三個陣列,圖中表示三條線段,線段的兩個端點分別代表的是起始時間和終止時間。注意:如果上乙個活動在t時間結束,下乙個活動最早應該在t+1時間開始,也就是說在圖中我們第乙個結束之後我們是不能安排第二個專案的,因為第乙個終止時間和第二個起始時間重合了,我們只能安排第三個專案。所以圖中我們可以安排2個會議,輸出應該為2。

這裡的話我們很直觀的想到了貪心策略,但是使用何種貪心策略了。

選擇開始時間最早的。但是這樣的話假如有乙個會議開始很早,持續時間很長的話,並不是最優解。

選擇持續時間最短的。但是這樣的話假如有乙個持續很短的會議夾在二個會議之間,這樣的話就會導致那二個會議不能進行,也不是最優解。

首先我們構造儲存結構,因為這裡有開始時間和結束時間,我們使用乙個結構體就可以儲存了。

struct program 

;

為了實現我們的陣列按照結束時間進行排序,這裡我們借助與std::sort方法,另外自定義比較函式。

c++中sort的比較函式寫法

會議安排(經典貪心演算法例題)

求解會議安排問題 C 實現

陳老師是乙個比賽隊的主教練,有一天,他想給團隊成員開會,應該為這次會 議安排教室,但教室缺乏,所以教室管理員必須通過接受訂單和拒絕訂單優化教室的利用率。如果接受乙個訂單,則該訂單 的開始時間和結束時間成為乙個活動。注意,每個時間段只 能安排乙個訂單。請找出乙個最大化的總活動時間的方法。你的任務是這樣...

會議安排問題(貪心演算法)

會場安排問題 描述學校的小禮堂每天都會有許多活動,有時間這些活動的計畫時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排乙個活動。現在小劉有一些活動計畫的時間表,他想盡可能的安排更多的活動,請問他該如何安排。輸入第一行是乙個整型數m m 100 表示共有...

任務安排問題 貪心

今天ckp打算去約會。大家都知道ckp是超級大帥哥,所以和他約會的mm也超級多,她們每個人都和ckp訂了乙個約會時間。但是今天ckp剛打算出門的時候才發現,某幾個mm的約會時間有衝突。由於ckp不會分身,還不能和多個mm同時約會,他只能忍痛割愛拒絕掉某些mm。但是ckp這個花心大蘿蔔還是不死心,他想...