sincerit 會場安排問題 區間選點 貪心

2021-09-02 02:39:51 字數 984 閱讀 6422

14 會場安排問題

時間限制:3000 ms | 記憶體限制:65535 kb

難度:4

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

輸入第一行是乙個整型數m(m<100)表示共有m組測試資料。

每組測試資料的第一行是乙個整數n(1每一場活動的開始,必須在上一場活動結束後,給出n個活動。因為時間是個天然的順序,並且我們判斷當前場次活動是否能開始的依據是上一場活動是否已經結束。所以我們按照活動的結束時間從小到大排列,如果結束時間相同,則開始時間晚的排在前面,因為占用的區間小。已經排好序,那麼選取的第乙個區間應該是哪乙個才能求出最優解呢?

第乙個區間必選。第乙個區間結束的時間最早,之後的區間1.結束時間和第乙個區間相同,開始時間比第乙個區間早,因為應該選擇盡量小的區間,所以這種情況選擇第乙個區間。2.開始時間相同,結束時間比第乙個區間晚。3.開始時間比第乙個區間早,結束時間比第乙個時間晚。 其實這3種情況都是包含第乙個區間,應選擇最小區間,捨去大區間,因此第乙個區間是必選的,那麼之後就用乙個變數記錄上乙個活動的結束時間,和當前活動的開始時間進行比較,即可獲得最優解

所以以後這樣的題目,排好序之後,第乙個區間是必選的,就從第乙個開始比較

#include

#include

#include

#include

#include

#include

using namespace std;

struct time

a[10001];

intcmp

(time x,time y)

intmain()

printf

("%d\n"

,sum);}

return0;

}

會場安排問題

會場安排問題 問題描述 假設要在足夠多的會場裡安排一批活動,活動的開始時間和結束時間已知,並希望使用盡可能少的會場。設計乙個有效的演算法進行安排。分析 這個問題實際上是著名的圖著色問題。若將每乙個活動作為圖的乙個頂點,不相容活動間用邊相連。使相鄰頂點著有不同顏色的最小著色數,就對應要找的最小會場數。...

會場安排問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 學校的小禮堂每天都會有許多活動,有時間這些活動的計畫時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排乙個活動。現在小劉有一些活動計畫的時間表,他想盡可能的安排更多的活動,請問他該如...

會場安排問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 學校的小禮堂每天都會有許多活動,有時間這些活動的計畫時間會發生衝突,需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排乙個活動。現在小劉有一些活動計畫的時間表,他想盡可能的安排更多的活動,請問他該如...