貪心演算法
先對活動按照結束時間公升序排序,此處省略排序步驟
貪心策略是:只要後者的開始時間大於等於前者的結束時間(即s[i]>=f[j])就選擇
#include usingview codenamespace
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;
}
另一種函式傳遞陣列並在函式中獲取陣列長度
#include usingview codenamespace
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;
}
執行結果如下:
活動安排問題
作為新一代的好青年肯定會喜歡許多的電視節目,比如說新聞聯播,焦點訪談,又如招聘類的節目有非你莫屬,職來職往,娛樂節目如快樂大本營。現在給你每個節目的開始時間和結束時間,要求你求出看盡可能多的完整節目。每個電視節目i都有乙個起始時間si和乙個結束時間fi,且si 對於活動安排問題可以用貪心演算法解決,...
活動安排問題
活動安排 描述 設有n個活動的集合e 其中每個活動都要求使用同一資源,如演講會場等,而在同一時間內只有乙個活動能使用這一資源。每個活動i都有乙個要求使用該資源的起始時間si和乙個結束時間fi,且si 輸入 輸入只有乙個用例,第一行為一正整數n,表示活動個數,接下來n行,每行兩個整數,分別表示第i號活...
活動安排問題
有若干個活動,第i個開始時間和結束時間是 si,fi 同乙個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室?第一行乙個正整數n n 10000 代表活動的個數。第二行到第 n 1 行包含n個開始時間和結束時間。開始時間嚴格小於結束時間,並且時間都是非負整數,小於1000000000 ...