活動安排問題

2022-04-12 09:39:59 字數 1232 閱讀 9393

貪心演算法

先對活動按照結束時間公升序排序,此處省略排序步驟

貪心策略是:只要後者的開始時間大於等於前者的結束時間(即s[i]>=f[j])就選擇

#include using

namespace

std;

const

int n=1005

;int greedyselector(int n,int s,int f, bool

a)

else a[i]=false

; }

return

cnt;

}int

main()

;//開始時間

int f=;//

結束時間

bool

b[n];

int n=(sizeof(s)/sizeof(s[0

]));

cout

<

活動安排數量:

"cout

<

安排如下:

"<

for(int i=1;i<=n;i++)

return0;

}

view code

另一種函式傳遞陣列並在函式中獲取陣列長度

#include using

namespace

std;

const

int n=1005

;template

int greedyselector(t& s,t& f,bool

a)

else a[i]=false

; }

return

cnt;

}int

main()

;//開始時間

int f=;//

結束時間

bool

b[n];

int n=sizeof(s)/sizeof(s[0

]); cout

<

活動安排數量:

"cout

<

安排如下:

"<

for(int i=1;i<=n;i++)

return0;

}

view code

執行結果如下:

活動安排問題

作為新一代的好青年肯定會喜歡許多的電視節目,比如說新聞聯播,焦點訪談,又如招聘類的節目有非你莫屬,職來職往,娛樂節目如快樂大本營。現在給你每個節目的開始時間和結束時間,要求你求出看盡可能多的完整節目。每個電視節目i都有乙個起始時間si和乙個結束時間fi,且si 對於活動安排問題可以用貪心演算法解決,...

活動安排問題

活動安排 描述 設有n個活動的集合e 其中每個活動都要求使用同一資源,如演講會場等,而在同一時間內只有乙個活動能使用這一資源。每個活動i都有乙個要求使用該資源的起始時間si和乙個結束時間fi,且si 輸入 輸入只有乙個用例,第一行為一正整數n,表示活動個數,接下來n行,每行兩個整數,分別表示第i號活...

活動安排問題

有若干個活動,第i個開始時間和結束時間是 si,fi 同乙個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室?第一行乙個正整數n n 10000 代表活動的個數。第二行到第 n 1 行包含n個開始時間和結束時間。開始時間嚴格小於結束時間,並且時間都是非負整數,小於1000000000 ...