区间调度问题(贪心)
2017-07-14 00:19
330 查看
有n项工作,每项工作分别在s[i]时间开始,在t[i]时间结束。你的目标是参与尽可能多的工作(工作的时间段不能重叠),那么最多能参与多少项工作?
样例:
输入
n=5,s={1,2,4,6,8},t={3,5,7,9,10}
输出
3(选取工作1,3,5)
思路:贪心思想:在可选的工作中,每次都选取结束时间最早的工作;
代码:
样例:
输入
n=5,s={1,2,4,6,8},t={3,5,7,9,10}
输出
3(选取工作1,3,5)
思路:贪心思想:在可选的工作中,每次都选取结束时间最早的工作;
代码:
const int max_n=10000; //输入 int N,S[max_n],T[max_n]; pair<int,int> itv[max_n]; void solve() { //为了方便进行字典序排序,把T存入first,把S存入second for(int i=0;i<N;i++) { itv[i].first=T[i]; itv[i].second=S[i]; } sort(itv,itv+N); //t是最后所选工作的结束时间 int ans=0,t=0; for(int i=0;i<N;i++) if(t<itv[i].second) { ans++; t=itv[i].first; } printf("%d\n",ans); }
相关文章推荐
- 简单贪心 区间调度问题
- 贪心基础题(区间调度问题+POJ_3617+POJ_3069)
- 几个经典的贪心区间问题之区间调度hdu2037
- 区间调度问题-贪心选择
- 贪心专练1 区间调度最多问题
- 贪心算法之区间调度问题
- 贪心入门题——看电视(区间调度问题)
- 【动态规划-贪心】区间调度问题
- 区间调度问题(贪心)
- 贪心算法之区间调度问题
- 图的点着色、区间着色问题及其应用(基于贪心思想的DFS回溯法求点着色问题和区间着色算法求解任务调度问题)
- 贪心-区间调度问题
- hdu 2037(贪心算法之区间调度问题)
- NP问题:多机调度问题(贪心)
- UVA 10148 Advertisement (贪心 + 区间选点问题)
- UVA 10382 Watering Grass (贪心 + 区间覆盖问题)
- UVAlive 2326 Moving Tables(贪心 + 区间问题)
- UVAlive 2326 Moving Tables(贪心 + 区间问题)
- 《黑书》uva10148(区间选点问题)贪心
- hdu 4398 Template Library Management (贪心 最优调度问题)