有若干個活動,第i個開始時間和結束時間是[si,fi),同乙個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室?
input
第一行乙個正整數n (n <= 10000)代表活動的個數。
第二行到第(n + 1)行包含n個開始時間和結束時間。
開始時間嚴格小於結束時間,並且時間都是非負整數,小於1000000000
output
一行包含乙個整數表示最少教室的個數。
sample input
3 1 2
3 4
2 9
sample output
2 1.1
分析:
**最大區間不相交問題**題目中給的資料太水了 一開始沒有完全理解題目的意思 應該是每選擇一次 都要整體遍歷一次有沒有符和要求的 設定兩個變數 start
end 注意是按照start公升序排序,而不是按照end 這一點要想明白
下面給出了一組比較好的測試資料可以檢驗你寫的**是否正確:
1.2
剛開始想的錯誤**的核心
t=a[0].e;
for(i=1;iif(a[i].s>=t)
else
count++;
}
1.3
修改之後的核心**:}}
1.4
**總覽:
#include
#include
#include
using
namespace
std;
struct nodep[100000];
int cmp(node a,node b)
; int count=0;
for(i=0;iif(b[i]==0)}}
printf("%d\n",count);
}return
0;}
貪心 活動安排問題
貪心演算法得到的並不一定是問題的整體最優解。但在這個問題中,貪心演算法最終確定的相容活動集合a的規模最大。描述 11件活動,各自有不同的開始和結束時間。求在所給活動的集合眾選出最大的相容活動子集合。include using namespace std bool a 11 int s 11 int ...
貪心 活動安排問題
活動安排問題就是要在所給的活動集合中選出最大的相容活動子集合,是可以用貪心演算法有效求解的很好例子。該問題要求高效地安排一系列爭用某一公共資源的活動。貪心演算法提供了乙個簡單 漂亮的方法使得盡可能多的活動能相容地使用公共資源。設有n個活動的集合e 其中每個活動都要求使用同一資源,如演講會場等,而在同...
活動安排問題(貪心)
description 設有n個活動的集合e 其中,每個活動都要求使用同一資源,如演講會場等,而在同一時間內只有乙個活動能使用這一資源。每個活動i都有乙個要求使用該資源的起始時間si和乙個結束時間fi,且si fi。如果選擇了活動i,則它在半開時間區間 si,fi 內占用資源。若區間 si,fi 與...