problem description
學校的大學生藝術中心週日將面向全校各個學院的學生社團開放,但活動中心同時只能供乙個社團活動使用,並且每乙個社團活動開始後都不能中斷。現在各個社團都提交了他們使用該中心的活動計畫(即活動的開始時刻和截止時刻)。請設計乙個演算法來找到乙個最佳的分配序列,以能夠在大學生藝術中心安排不衝突的盡可能多的社團活動。
比如有5個活動,開始與截止時刻分別為:
最佳安排序列為:1,4,5。
input
第一行輸入活動數目n(0
以後輸入n行,分別輸入序號為1到n的活動使用中心的開始時刻a與截止時刻b(a,b為整數且0<=a,b<24,a,b輸入以空格分隔)。
output
輸出最佳安排序列所包含的各個活動(按照活動被安排的次序,兩個活動之間用逗號分隔)。
example input
6example output8 10
9 16
11 16
14 15
10 14
7 11
1,5,4活動選擇,盡可能排更多的活動...我們要選擇那些盡早結束的活動,就能排更多的活動了。所以按照活動結束時間排序,只要活動開始時間大於等於上個活動結束時間即可。
**如下:
#include
struct node
a[105], t;
void f(struct node a, int l, int r) //按照活動結束時間排序,從小到大
a[i] = key;
f(a,l,i-1);
f(a,i+1,r); }
int main()
f(a,0,n-1);
int ts = a[0].e; //立flag標記結束時間
printf("%d", a[0].num);
for(i = 1; i < n; i++)
} printf("\n");
return 0; }
活動選擇 貪心)
time limit 1000ms memory limit 65536kb problem description 學校的大學生藝術中心週日將面向全校各個學院的學生社團開放,但活動中心同時只能供乙個社團活動使用,並且每乙個社團活動開始後都不能中斷。現在各個社團都提交了他們使用該中心的活動計畫 即活...
活動選擇 貪心
題目描述 假設有乙個需要使用某一資源的n個活動所組成的集合s,s 該資源一次只能被乙個活動所占用,每乙個活動有乙個開始時間bi和結束時間ei bi ei 若bi ej或bj ei,則稱活動i和活動j相容。你的任務是 選擇由互相相容的活動所組成的最大集合。輸入共n 1行,其中第1行為n,第2行到第n ...
活動選擇問題(貪心)
time limit 1000ms memory limit 65536k 有疑問?點這裡 學校的大學生藝術中心週日將面向全校各個學院的學生社團開放,但活動中心同時只能供乙個社團活動使用,並且每乙個社團活動開始後都不能中斷。現在各個社團都提交了他們使用該中心的活動計畫 即活動的開始時刻和截止時刻 請...