活動選擇 貪心演算法sdut

2021-10-11 12:33:18 字數 1150 閱讀 3399

description

學校的大學生藝術中心週日將面向全校各個學院的學生社團開放,但活動中心同時只能供乙個社團活動使用,並且每乙個社團活動開始後都不能中斷。現在各個社團都提交了他們使用該中心的活動計畫(即活動的開始時刻和截止時刻)。請設計乙個演算法來找到乙個最佳的分配序列,以能夠在大學生藝術中心安排不衝突的盡可能多的社團活動。

比如有5個活動,開始與截止時刻分別為:

最佳安排序列為:1,4,5。

input

第一行輸入活動數目n(0

以後輸入n行,分別輸入序號為1到n的活動使用中心的開始時刻a與截止時刻b(a,b為整數且0<=a,b<24,a,b輸入以空格分隔)。

output

輸出最佳安排序列所包含的各個活動(按照活動被安排的次序,兩個活動之間用逗號分隔),如果有多個活動安排序列符合要求輸出字典序最小的序列。

sample

input

68 10

9 16

11 16

14 15

10 14

7 11

output

1,5,4

#include

.h>

using namespace std;

struct node

a[111

],t;

//定義結構體,存開始,結束時間,以及他們所對應的id

int main()

//以下是氣泡排序,也可以使用快排函式,參照我的部落格上的裝船問題裡sort函式的使用

for(int i=

0;i1;i++)}

} int s=

0,f=1;

for(int i=

0;i)else

//除了第一次的之外再把其它的符合要求的id給輸出,

//這裡多此一舉的原因是因為它輸出的時候有格式要求,如果是個空格的話就不用這麼麻煩了。}}

return0;

}

貪心演算法 活動選擇

假設有乙個需要使用某一資源的活動組成的集合s,s n 1000 該資源一次只能被乙個活動占用,每乙個活動有乙個開始時間bi和乙個結束事件ei bi ei 若bi ej或者bj ei,則活動i和活動j相容。你的任務是 選擇由相互相容的活動組成的最大集合。輸入 輸入共n 1行,其中第1行為n,第2行到第...

貪心演算法 活動選擇

貪心演算法,選擇區域性最優解 活動選擇問題,每個活動有開始時間s,結束時間f,找到最大相容活動集。假設f按照大小順序排好。每次就從當前結束時間往後選最近的開始時間的活動 include include include using namespace std void activityselect m...

活動選擇 貪心演算法

學校的大學生藝術中心週日將面向全校各個學院的學生社團開放,但活動中心同時只能供乙個社團活動使用,並且每乙個社團活動開始後都不能中斷。現在各個社團都提交了他們使用該中心的活動計畫 即活動的開始時刻和截止時刻 請設計乙個演算法來找到乙個最佳的分配序列,以能夠在大學生藝術中心安排不衝突的盡可能多的社團活動...