【计算机算法】贪心算法——看电影、活动选择问题
看电影及活动选择问题
- 看电影
- 题目
- 输入格式
- 输出格式
- 输入样例
- 输出样例
- 实现代码
- 活动选择问题
- 题目
- 输入格式
- 输出格式
- 输入样例
- 输出样例
- 样例解释
- 实现代码
- 注意事项
看电影
题目
终于到周末了,明明是特别喜欢看电影。他想在一天内尽量多的看到完整的多部电影。 现在他把他喜欢的电影的播放时间表给你,希望你能帮他合理安排。
输入格式
输入包含多组测试数据。每组输入的第一行是一个整数n(n<=100),表示明明喜欢的电影的总数。
接下来n行,每行输入两个整数si和ei(1<=i<=n),表示第i个电影的开始和结束时间,为了简化问题,每个时间都用一个正整数表示。当n=0时,输入结束。
输出格式
对于每组输入,输出能完整看到的电影的个数。
输入样例
在这里给出一组输入。例如
12
1 3
3 4
0 7
3 8
15 19
15 20
10 15
8 18
6 12
5 10
4 14
2 9
0
输出样例
在这里给出相应的输出。例如
5
实现代码
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
#define MAXN 10000int movieAllNum = 0;//电影总部数
int movieWatch = 0;//最大可观看电影部数struct movie{int starttime;int endtime;
}movieSee[MAXN];void input(){int i;for(i = 0;i < movieAllNum;i++){cin>>movieSee[i].starttime;cin>>movieSee[i].endtime;}
}bool cmp(movie a,movie b){return a.endtime < b.endtime;
}void calculate(){int i = 0;int finaltime = movieSee[i].endtime;movieWatch ++;for(i = 1;i < movieAllNum;i++){if(finaltime <= movieSee[i].starttime){movieWatch++;finaltime = movieSee[i].endtime;}}cout<<movieWatch<<endl;
}void clear(){int i;for(i = 0;i < movieAllNum;i++){movieSee[i].starttime = 0;movieSee[i].endtime = 0;}movieWatch = 0;movieAllNum = 0;
}int main(){cin>>movieAllNum;while(movieAllNum != 0){input();sort(movieSee,movieSee + movieAllNum,cmp);calculate();clear();cin>>movieAllNum;}}
活动选择问题
题目
输入格式
输出格式
输出最多能安排的活动个数。
输入样例
11
3 5
1 4
12 14
8 12
0 6
8 11
6 10
5 7
3 8
5 9
2 13
输出样例
4
样例解释
安排的4个活动为1 4, 5 7, 8 11和12 14。
实现代码
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
#define MAXN 10000int allActivities = 0;//活动总个数
int useActivities = 0;//最大可安排的个数 struct activity{int starttime;int endtime;
}arrActivities[MAXN];void input(){cin>>allActivities;int i;for(i = 0;i < allActivities;i++){cin>>arrActivities[i].starttime;cin>>arrActivities[i].endtime;}
}bool cmp(activity a,activity b){return a.endtime < b.endtime;
}void calculate(){int i = 0;int finaltime = arrActivities[i].endtime;useActivities ++;for(i = 1;i < allActivities;i++){if(finaltime <= arrActivities[i].starttime){useActivities ++;finaltime = arrActivities[i].endtime;}}cout<<useActivities;
}int main(){input();sort(arrActivities,arrActivities + allActivities,cmp);calculate();
}
注意事项
两道题的输入输出格式是有差异的!!
【计算机算法】贪心算法——看电影、活动选择问题相关推荐
- [python算法]贪心算法+实例
目录 什么是贪心算法 应用实例 找零问题 背包问题 拼接数字问题 活动选择问题 什么是贪心算法 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择. 也就是说,不从整体最优上 ...
- 用计算机听音乐和看电影的ppt,五年级下册信息技术课件-第六课 用计算机听音乐和看电影 川教版 (共13张PPT)...
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...
- JavaScript 算法 -- 贪心算法
文章目录 贪心算法 例题一:分饼干 例题二:买卖股票的最佳时机 II 贪心算法 贪心算法是算法设计的一种方法. 期盼通过每个阶段的局部最优选择,从而达到全局的最优,但最后的结果不一定最优. 例题一:分 ...
- 用计算机听音乐和看电影教学反思,五年级下册信息技术《用计算机听音乐和看电影》教学设计...
一.教学目标 知识技能目标:①学生能够运用windows系统自带的CD播放器和运用超级解霸听音乐.看电影.②通过学习,增强学生创新意识. 过程与方法目标:①能够知道计算机播放音乐和电影的方法,提高学生 ...
- 用计算机听音乐和看电影的ppt,小学信息技术川教版五年级下册第六课 用计算机听音乐和看电影教案...
这是一份小学信息技术川教版五年级下册第六课 用计算机听音乐和看电影教案,共2页. 第六课用计算机听音乐和看电影 一.教学目标 知识技能目标: 能够运用windows自带播放器和其它播放器听音乐.看电影 ...
- 基础算法 —— 贪心算法
[概述] 贪心算法是从问题的初始状态出发,通过若干次的贪心选择而得到的最优值的一种求解策略,即贪心策略. 简单来说,贪心策略是一种在每次决策时采取当前意义下最优策略的算法,做出的选择至少在某种约束条件 ...
- C语言会场安排问题贪心算法,贪心算法解决会场安排问题多处最优服务次序问题(含源代码).doc...
贪心算法解决会场安排问题多处最优服务次序问题(含源代码) 西 安年月日-,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源.每个活动i都有一个要求使用该资源 ...
- 相关算法---贪心算法
贪心算法 1. 理论基础 贪心的本质就是选择每一阶段的局部最优,从而达到全局最优. 使用贪心最好的策略就是举反例,如果想不到反例,就试一试贪心. 刷题或者面试的时候,手动模拟一下感觉可以局部最优推出整 ...
- 部分背包的贪婪算法 java_使用JAVA实现算法——贪心算法解决背包问题
packageBasePart;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.IOException ...
- 基础算法 —— 贪心算法
[概述] 贪心算法是从问题的初始状态出发,通过若干次的贪心选择而得到的最优值的一种求解策略,即贪心策略. 简单来说,贪心策略是一种在每次决策时采取当前意义下最优策略的算法,做出的选择至少在某种约束条件 ...
最新文章
- 通讯波形记录——I2S、I2C、Uart、SPI
- 回归模型-线性回归算法
- CSAPP第五章就在“扯淡”!
- 如何搭建一套融资租赁业务系统
- 2017最新顺口溜出炉(超级经典)!
- 实现模糊查询并忽略大小写
- leetcode268. 缺失数字
- Bootstrap 滚动监听插件Scrollspy 的事件
- 群联固态硬盘修复工具_固态硬盘掉速修复小教程,SATA和NVMe协议通用
- Unity延迟和重复调用方法
- 20-21-2网络管理quiz3
- 水很深的深度学习-Task05循环神经网络RNN
- parsley.js自定义验证规则之大小写
- 求极限简单总结 (基础)
- 信号处理-基于希尔伯特解调(包络谱)的轴承故障诊断实战,通过python代码实现超详细讲解
- Charles手机 APP 抓包仅需这三步
- Bootstrap 弹出框modal 垂直居中(适用各种分辨率窗口)
- /etc/login.defs配置文件详解
- Netty in Action 翻译说明
- python 实现简单画板_python 画板示例源码(可做签名/涂鸦)