Codeforces 845 C. Two TVs 思路:简单贪心算法
题目:
题目原文链接:http://codeforces.com/contest/845/problem/C
题意:现在我们有一个电视清单,有两个电视,电视清单上有每一个节目的开始时间和结束时间。
电视不能接连不间断的播放,例如TV1播放完1-2点的节目后不能接着播放2-3点的电视,除非在TV2上播放,如果TV2也正在播放则不能播放完清单。
思路:
1.对清单排序,让开始时间早的靠前,如果开始时间相同,结束时间早的靠前。
2.如果TV1已经结束。就把这一个节目的结束时间赋给TV1,然后看下一个节目。
3.如果TV1尚未结束,TV2已经结束。就把这一个节目的结束时间赋给TV2,然后看下一个节目。
4.如果TV1、TV2都尚未结束。就输出NO,不再看下一个节目。
代码:
#include <bits\stdc++.h> using namespace std;struct node{int l;int r; }a[200005];bool cmp(node a,node b){if(a.l == b.l) return a.r < b.r;return a.l < b.l; }int main(){int n;cin >> n;for(int i = 0;i < n; i++){cin >> a[i].l >> a[i].r;}sort(a,a+n,cmp); //对清单排序,让开始时间早的靠前,如果开始时间相同,结束时间早的靠前。 int r1 = -1,r2 = -1; //初始化上一个节目结束的时间 for(int i = 0;i < n; i++){if(r1 < a[i].l){ //如果TV1已经结束。就把这一个节目的结束时间赋给TV1,然后看下一个节目。 r1 = a[i].r;continue;}if(r2 < a[i].l){ //如果TV1尚未结束,TV2已经结束。就把这一个节目的结束时间赋给TV2,然后看下一个节目。 r2 = a[i].r;continue;}cout << "NO" << endl;//如果TV1、TV2都尚未结束。就输出NO,不再看下一个节目。 return 0;}cout << "YES" << endl;return 0; }
Codeforces 845 C. Two TVs 思路:简单贪心算法相关推荐
- Codeforces 845 A. Chess Tourney 思路:简单逻辑题
题目: 题意:输入一个整数n,接着输入2*n个数字,代表2*n个选手的实力. 实力值大的选手可以赢实力值小的选手,实力值相同则都有可能赢. 叫你把这2*n个选手分成2个有n个选手的队伍. ...
- 力扣贪心算法专题(一)455.分发饼干 376. 摆动序列 53. 最大子序和 122.买卖股票的最佳时机II 1005.K次取反后最大化的数组和 思路及C++实现 贪心算法 动态规划
文章目录 贪心算法 455.分发饼干 思路 步骤 代码 376. 摆动序列 贪心算法 思路 分析 代码 动态规划 思路 步骤 代码 53. 最大子序和 暴力解法 双层for循环 贪心算法 思路 分析 ...
- 贪心算法很简单:跳跃游戏
题目描述: 定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] 输出: ...
- 三十六、贪心算法--集合覆盖问题
一.贪心算法介绍 1.贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 2.贪心算法不是对所有问题都 ...
- <贪心算法>学习及经典实例分析
前言 人生如逆旅,我亦是行人. 贪心算法(Greedy Algorithm) 贪心算法(Greedy Algorithm,又称贪婪算法):是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说 ...
- 3.Python算法之贪心算法思想
贪心算法 1.什么是贪心算法 2.贪心算法的特点和思路 3.贪心算法的缺点 4.贪心算法的基本思路 5.贪心算法的基本过程 6.贪心算法解决"找零"问题 6.贪心算法解决" ...
- Leetcode刷题:贪心算法
文章目录 一.算法思想 二.分配问题 2.1 Leetcode 455 2.1.1 题目描述 2.1.2 输入输出格式 2.1.3求解思路 2.1.4 代码示例(C++) 2.2 Leetcode 1 ...
- Leetcode学习之贪心算法
贪心算法理论基础 题目分类大纲如下: 什么是贪心 贪心的本质是选择每一阶段的局部最优,从而达到全局最优. 这么说有点抽象,来举一个例子: 例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎 ...
- 4.25分享(贪心算法基础)
这里写目录标题 贪心选择的概念 解题的基本思路 对贪心算法的理解 贪心算法的基本流程: 例题 部分背包问题 纸币找零问题 贪心算法与动态规划的区别 坚果保龄球 贪心选择的概念 贪心算法总是做出在当前看 ...
最新文章
- 【机器学习基础】Python机器学习的神器- Scikit-learn使用说明
- 几款让你爱不释手的语音转文字软件
- scrcpy投屏_安卓投屏利器——PC一键控制多台手机
- 一个最简单的Makefile例子(转)
- FTP主动模式和被动模式学习笔记
- 如何才能通过设置将excel单元格内的14位数字转换为日期格式
- Box2dの学习制作超级积木完整版
- Storm目录树、任务提交、消息容错、通信机制
- 暮光之城4下高清下载地址|暮光之城4第二部高清下载地址
- 电商数据应用体系建设总结(二)—— 数据应用层架构介绍和规范总结
- 数据库 casewhen 的用法
- node mysql 坑_菜鸟Node.js MySQL教程遇到的坑
- Grid-based RRP/基于网格的路径重新规划问题
- Mysql数据库 | SQL语句解析『下篇』
- GUNS框架图片上传详解
- js关闭当前网页的代码
- 阿里一日游,入职当天即提辞职
- html5 打气球小游戏,在javascript+css3中如何实现打气球小游戏
- UVALive 4513 Stammering Aliens
- MATLAB实现RSA加密解密
热门文章
- lisp用entmake生产圆柱体_使用lisp语言实现在平面图中自动画出桥梁的墩柱标识.doc...
- 3dContactPointAnnotationTool开发日志(三三)
- 第一章 初识Linux shell
- 维护索引——通过重组索引提高性能
- 如何通过apk获得包名及Activiy 名称
- 老李分享:Android -自动化埋点 2
- Random方法:生成指定长度的随机数字
- String案例 练习: 将一个字符串进行反转
- [当人工智能遇上安全] 7.基于机器学习的安全数据集总结
- [Python人工智能] 三十三.Bert模型 (2)keras-bert库构建Bert模型实现文本分类