有若干個活動,第i個開始時間和結束時間是[si,fi),同乙個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室?
輸入
第一行乙個正整數n (n <= 10000)代表活動的個數。輸出第二行到第(n + 1)行包含n個開始時間和結束時間。
開始時間嚴格小於結束時間,並且時間都是非負整數,小於1000000000
一行包含乙個整數表示最少教室的個數。輸入示例
3輸出示例1 23 4
2 9
2
題解:兩邊排序,start比end**明此時需要安排教室,反之繼續進行
#include#includeview code#include
typedef
long
long
ll;
using
namespace
std;
ll startime[
10001
];
ll endtime[
10001
];
intmain()
printf("%d
",answer);
return
0;
}
題解2;
一樣的思路,用佇列實現
#include #includeview code#include
#include
#include
using
namespace
std;
typedef
long
long
ll;struct
node
}a[100001
];priority_queue
,greater >s;
intmain()
else
}else
}cout
return0;
}
活動安排問題 51nod
原題鏈結 問題 有若干個活動,第i個開始時間和結束時間是 si,fi 同乙個教室安排的活動之間不能交疊,求要安排所有活動,最少需要幾個教室?input第一行乙個正整數n n 10000 代表活動的個數。第二行到第 n 1 行包含n個開始時間和結束時間。開始時間嚴格小於結束時間,並且時間都是非負整數,...
51nod 活動安排問題
有若干個活動,第i個開始時間和結束時間是 si,fi 只有乙個教室,活動之間不能交疊,求最多安排多少個活動?分析 我們就是想提高教室地利用率,盡可能多地安排活動。考慮容易想到的幾種貪心策略 1 開始最早的活動優先,目標是想盡早結束活動,讓出教室。然而,這個顯然不行,因為最早的活動可能很長,影響我們進...
51nod 活動安排問題 (貪心)
有若干個活動,第i個開始時間和結束時間是 si,fi 只有乙個教室,活動之間不能交疊,求最多安排多少個活動?分析 我們就是想提高教室地利用率,盡可能多地安排活動。考慮容易想到的幾種貪心策略 1 開始最早的活動優先,目標是想盡早結束活動,讓出教室。然而,這個顯然不行,因為最早的活動可能很長,影響我們進...