区间调度问题
来源:互联网 发布:装修接单软件 编辑:程序博客网 时间:2024/05/17 23:28
有n项工作,每项工作分别在start[i]时间开始,在End(i)时间结束。对于每项工作,你都可以选择参与与否,如果选择参与,那么自始至终必须全程参与。此外参与时间段不能重叠(即使是开始的瞬间与结束的瞬间重叠也是不允许的),那么最多能参与多少项工作?
//算法思想:在可选的工作中,每次都选取结束时间最早的工作#include <iostream>#include <utility>#include <algorithm>using namespace std;//设置全局变量const int MAX = 10000;int N = 5;//工作的个数int Start[MAX] = {1, 2, 4, 6, 8};//存储开始时间的数组int End[MAX] = {3, 5, 7, 9, 10};//存储结束时间的数组pair<int, int> space[MAX];//选取最多工作的个数void Solve(){ int count = 0;//存储工作个数 int t = 0;//存储结束时间 for(int i = 0; i < N; ++i) { space[i].first = End[i];//第一个数据成员存储结束时间 space[i].second = Start[i];//第二个数据成员存储开始时间 } //对结束时间按字典排序 sort(space, space + 5); for(int j = 0; j < N; ++j) { if(t < space[j].second)//判断是否重叠 { ++count; t = space[j].first;//每次给t赋结束时间 } } cout << count;}int main(){ Solve(); return 0;}
- 区间调度问题
- 区间调度问题
- 贪心-区间调度问题
- 区间调度问题详解
- ACM-区间调度问题
- 区间调度问题
- 区间调度问题
- 区间调度问题
- 区间调度问题
- 区间调度问题
- 区间调度问题详解
- 区间调度问题
- 区间调度问题详解
- 简单贪心 区间调度问题
- 区间调度问题 ----- 贪心算法
- 加权区间调度问题详解
- 区间调度问题-贪心选择
- 区间调度问题(贪心)
- 黑马高薪学习方法
- C语言学习方法
- 搜狗浏览器是个骗子
- struct和class的区别
- tomcat问题,jsp页面无法编译,web页面一片空白,log显示空指针,在tomacat的work文件夹下没有生成相应的Java文件
- 区间调度问题
- Maya: 菜单 编辑网格 >偏移循环边工具
- Python学习教程(五)
- 浅谈缺陷修复人预测(Bug Triaging)
- ios 代理和委托的区别
- Maya: 菜单 编辑网格 >添加分段
- poj3435
- 14条建议,使你的IT职业生涯更上一层楼
- 快速排序 代码实现