活动选择问题(贪心)
假设有n个活动,每个活动有一个起始时间和一个结束时间,现在想在一段固定时间内安排最多的活动数。这个问题是典型的贪心问题,我们把所有的活动按结束时间从小到大排序,这样可以知道最小的那个活动a1一定在最优集合里,因为假设最优结构中没有a1,而是它的最小活动为另一个数假设ax,因为a1是所有活动中最小的,所以如果我们把ax换成a1,最优集合里所有的活动还是兼容的,所以a1一定在最优集合中。这样我们只要先选出a1,然后再对除去a1后所有起始时间大于等于a1结束时间的活动进行贪心即可,每次选择当前集合中结束时间最小的活动就可以得到最大的活动数。
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
struct node
{int s, f;
};
vector<int> time;bool cmp(const node a, const node b)
{return a.f<b.f;
}int main()
{int n;cout << "Enter all intervals of time can be chosen" << endl;cin >> n;node *p = new node[n+1];cout << "Enter the start and end of time intervals" << endl;for (int i = 1; i <= n; i++)cin >> p[i].s >> p[i].f;sort(p+1, p + n + 1, cmp);//先按照结束时间从小到大排序int k = 1;time.push_back(1);for (int m = 2; m <= n; m++){if (p[m].s >= p[k].f)//找到最小的比上一个结束时间大的开始时间,就选它作为下一个时间段{time.push_back(m);k = m;}}cout << "There are most "<<time.size()<<": ";int temp = time.size();for (int i = 0; i < temp; i++)//倒序输出{cout << time.back() << " ";time.pop_back();}cout << endl;delete[] p;return 0;
}
转载于:https://www.cnblogs.com/seasonal/p/10343703.html
活动选择问题(贪心)相关推荐
- 活动选择的贪心算法与动态规划
问题: 有一个需要使用每个资源的n个活动组成的集合S= {a1,a2,···,an },资源每次只能由一个活动使用.每个活动a都有一个开始时间和结束时间,且 0<= s < f .一旦被选 ...
- 活动选择问题 贪心
活动选择问题 题目描述 sdut 大学生艺术中心每天都有n个活动申请举办,但是为了举办更多的活动,必须要放弃一些活动,求出每天最多能举办多少活动. 输入 输入包括多组输入,每组输入第一行为申请的活动数 ...
- 从 活动选择问题 看动态规划和贪心算法的区别与联系
这篇文章主要用来记录我对<算法导论> 贪心算法一章中的"活动选择问题"的动态规划求解和贪心算法求解 的思路和理解. 主要涉及到以下几个方面的内容: ①什么是活动选择问题 ...
- 贪心算法之活动选择问题
贪心算法之活动选择问题 我们在之前的文章里面已经提到过动态规划的方法来求解最优的问题,但是就是因为动态规划太过于强大,像一把瑞士军刀,在一些比较特殊的问题上再使用动态规划的话,就有点用脸盆刷牙的感觉了 ...
- 贪心策略——活动选择问题
谈一谈贪心算法中活动选择问题
- 活动选择与小船过河问题(贪心算法)
活动选择问题描述: 存在一个教室,有下面若干个活动需要安排在一天进行,活动之间不能重叠,如何安排活动使活动的数量最多? 活动序号 1 2 3 4 5 6 7 8 9 10 11 (活动已经按结束时间 ...
- Python(贪心算法)问题 C: 活动选择_学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使用。
问题 C: 活动选择 题目描述 学校在最近几天有n个活动, 这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使用. 由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使 ...
- 【计算机算法】贪心算法——看电影、活动选择问题
看电影及活动选择问题 看电影 题目 输入格式 输出格式 输入样例 输出样例 实现代码 活动选择问题 题目 输入格式 输出格式 输入样例 输出样例 样例解释 实现代码 注意事项 看电影 题目 终于到周末 ...
- 7-1 活动选择问题 (25 分)(思路+详解+扩展)宝 今天你AC了吗!!!
一:题目 假定一个有n个活动(activity)的集合S={a 1 ,a 2 ,-,a n },这些活动使用同一个资源(例如同一个阶梯教室),而这个资源在某个时刻只能供一个活动使用.每个活 ...
- 活动安排问题(贪心算法)
问题描述: 有n个活动的活动集合E ,其中每一个活动都要求使用同一个资源,而在同一个时刻内资源只能被一个活动使用,每一个活动都有开始是时间和结束时间,要求从活动集合E中选出m个活动,使着m个活动都能顺 ...
最新文章
- spark 读取mongodb失败,报executor time out 和GC overhead limit exceeded 异常
- 静态方法-应用场景和定义方式
- 取消IE不允许下载文件的提示
- Python eval 函数 -Python零基础入门教程
- 张一鸣这一条微博,阿里P8的我,竟然想了一夜
- Linux命令基本格式(详解版)
- 马斯克“地狱”归来,回应一切
- 给出中序和前序求后序Java,已知二叉樹前序,中序遍歷,求后序遍歷,java實現...
- 原生js--放大镜效果
- 如何评估一个算法效果
- 均线颜色怎么区分_股票均线颜色
- 数据显示:中国程序员是世界上最牛的程序员
- 服务器传奇网站搭建修改教程,传奇架设教程如何修改爆率
- 高德地图API定位失败 浏览器定位 IP定位
- spring 中使用tdd_通过JavaScript中基于属性的TDD的钻石方块
- JS去除输入文本的所有空格、逗号、换行符等空白字符
- Day02-HTML基础
- java之简单性能优化
- IDEA打包指定类为jar包
- 百分数转bigd_英语口语小数、百分数以及倍数巧表达
热门文章
- 开始做我的robot博客
- iOS Xcode热重载工具: InjectionIII 使用简介(无需重启,快速刷新界面,动态调试)
- Myeclipse如何使用自带git工具向远程仓库提交代码(转)
- hystrix参数使用方法
- IntelliJ IDEA 打包Maven 构建的 Java 项目
- Docker配置国内加速器加速镜像下载的方法
- bootstrap中col-xs-* 和 col-md-* 和col-sm-*这几个类是干嘛的啊?
- 我的CSS笔记(一)
- 第八回 新年晚会艺压群芳 文理分科三人聚首[林大帅作品选]
- qt超强精美绘图控件 - QCustomPlot一览