題目描述
假設某社團某一天要組織?個活動? = ,其中每個活動都要求使用同一禮堂,而且 在同一時間內只有乙個活動能使用這個禮堂。每個活動?都有乙個要求使用禮堂的起始時間?? 和結束時間 ??,且有?? < ?? 。如果選擇了活動?,則它在半開時間區間[?? , ??) 內占用資源。若 區間[??, ??) 與區間[??, ??) 不相交,則稱活動?與活動?是相容的。現在給定?個活動的開始時間和結束時間,請設計乙個活動安排方案,使得安排的相容活動數目最多。
輸入第一行是乙個整數n;第二行到第n+1行都有兩個整數,分別是活動i的起始時間和結束時間
輸出輸出滿足條件的活動數目的最大值。
input
111 4
0 63 5
3 85 7
5 96 10
8 11
8 12
2 13
12 14
output
思路假設選取了第乙個活動,則第乙個活動的結束時間會影響下乙個活動的起始時間,怎麼才會使滿足條件的數目達到最大呢?我們讓結束時間小的活動排在最前面,然後依次往後遍歷,如果當前活動的結束時間早於下乙個活動的起始時間,則這個活動滿足條件,這樣就達到最優的效果。
**
#include
#define maxsize 1000
typedef
struct nodenode;
void
swap
(node *a,node *b)
void
bubblesort
(int n,node *arr)
intsolve
(int n,node *arr,node *temp)
}return cnt;
}int
main()
/*11
1 40 6
3 53 8
5 75 9
6 10
8 11
8 12
2 13
12 14
*/
活動安排問題 區間貪心
設有n個活動的集合e 其中每個活動都要求使用同一資源,如演講會場等,而在同一時間內只有乙個活動能使用這一資源。每個活動i都有乙個要求使用該資源的起始時間si和乙個結束時間fi,且si fi。如果選擇了活動i,則它在半開時間區間 si,fi 內占用資源。若區間 si,fi 與區間 sj,fj 不相交,...
活動安排問題(區間類貪心)
題意 設有n個活動的集合e 其中,每個活動都要求使用同一資源,如演講會場等,而在同一時間內只有乙個活動能使用這一資源。每個活動i都有乙個要求使用該資源的起始時間si和乙個結束時間fi,且si fi。如果選擇了活動i,則它在半開時間區間 si,fi 內占用資源。若區間 si,fi 與區間 sj,fj ...
貪心 活動安排問題
貪心演算法得到的並不一定是問題的整體最優解。但在這個問題中,貪心演算法最終確定的相容活動集合a的規模最大。描述 11件活動,各自有不同的開始和結束時間。求在所給活動的集合眾選出最大的相容活動子集合。include using namespace std bool a 11 int s 11 int ...