题目

数轴上有n个闭区间[ai, bi]。取尽量少的点,使得每个区间内都至少有一个点(不同区间内含的点可以是同一个)。

输入格式:

第一行一个数字n,表示有n个闭区间。 下面n行,每行包含2个数字,表示闭区间[ai, bi]

输出格式:

一个整数,表示至少需要几个点

输入样式:

在这里给出一组输入。例如:

输出样式:

在这里给出相应的输出。例如:

基本思想:

一个点要处于尽可能多的区域内

代码实现:

#include<bits/stdc++.h>
using namespace std;typedef struct{int start;int end;
}area;bool cmp(area a, area b)
{if(a.start==b.start) return a.end<b.end;else return a.start<b.start;
}int main()
{int n;cin>>n;int count=0;
//考虑数轴上没有闭区间的情况
//不过题目的测试点中没有这种情况,可以把count直接设成1, 省略下面这个if-else判断if(n==0){cout<<count<<endl;return 0;}else count=1;area a[n];for(int i=0; i<n; i++){cin>>a[i].start>>a[i].end;}sort(a, a+n, cmp);  //因为a是结构体,要重写cmpfor(int i=0, j=0; i<n && j<n; ){if(a[i].end>=a[j].start)  //a[i]和a[j]存在重叠部分//注意, 因为是闭区间,要考虑a[i].end和a[j].start相等的情况{j++;}else                      //a[i]和a[j]不存在重叠部分//新的a[i]为旧的a[j], 新的a[j]为旧的a[j+1], 继续循环{count++;i=j;j++;}}cout<<count<<endl;return 0;
}

提交结果:

贪心算法 - 选点问题 (15 分) C++相关推荐

  1. 【数据结构】贪心算法(人民币、分糖果)

    [0]目录 一.贪心算法存于生活中 1.1人民币支付问题 1.1.1算法思想 1.1.2程序实现 1.1.3程序结果 1.举个实例 二.分糖果 leetcode455 2.1举个实例 2.2贪心规律 ...

  2. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  3. 拜托,别再问我贪心算法了!

    来自:码海 前言 上篇一文学会动态规划解题技巧 被不少号转载了,其中发现有一位读者提了一个疑惑,在求三角形最短路径和时,能否用贪心算法求解.所以本文打算对贪心算法进行简单地介绍,介绍完之后我们再来看看 ...

  4. 算法学习笔记22:贪心算法

    目录 贪心算法:如何用贪心算法实现Huffman压缩编码 如何理解"贪心算法" 贪心算法实战分析 1.分糖果 2. 钱币找零 3. 区间覆盖 解答开篇 内容小结 贪心算法:如何用贪 ...

  5. JavaScript 算法 -- 贪心算法

    文章目录 贪心算法 例题一:分饼干 例题二:买卖股票的最佳时机 II 贪心算法 贪心算法是算法设计的一种方法. 期盼通过每个阶段的局部最优选择,从而达到全局的最优,但最后的结果不一定最优. 例题一:分 ...

  6. 常用十大算法 非递归二分查找、分治法、动态规划、贪心算法、回溯算法(骑士周游为例)、KMP、最小生成树算法:Prim、Kruskal、最短路径算法:Dijkstra、Floyd。

    十大算法 学完数据结构该学什么?当然是来巩固算法,下面介绍了十中比较常用的算法,希望能帮到大家. 包括:非递归二分查找.分治法.动态规划.贪心算法.回溯算法(骑士周游为例).KMP.最小生成树算法:P ...

  7. leetcode 分饼干 贪心算法python

    描述 样例 样例1: 输入:[1,2,3], [1,1] 输出:1 说明:你有三个孩子和两块饼干,三个孩子的贪吃指数分别是1,2,3 虽然你有两块饼干,但是因为它们的大小都为1,你只能满足让贪吃指数为 ...

  8. 分金问题 返回分割的最小代价 (贪心算法)

    一块金条切成两半,是需要花费和长度数值一样的铜板 比如长度为20的金条,不管怎么切都要花费20个铜板,一群人想整分整块金条,怎么分最省铜板? 例如,给定数组{10,20,30},代表一共三个人,整块金 ...

  9. 贪心算法——区间选点问题

    转载:https://blog.csdn.net/xia842655187/article/details/51944763 区间选点的问题大致可以描述为:  给定N个区间[a,b],取尽量少的点,使 ...

最新文章

  1. dhtmlxgrid导出的js_dhtmlxgrid jsp标签
  2. Nginx部署及综合应用
  3. 硬盘检测工具Smartmontools安装、部署、使用
  4. java实现人脸识别源码【含测试效果图】——Service层(IUserService)
  5. django 日志写入mysql_如何将django orm模型 写入数据库
  6. 将DHCP从win2000转移到2003上
  7. MSSQL中Case语句的用法
  8. 聊聊我在美团做算法的感受
  9. 手把手教,使用VMware虚拟机安装Windows XP系统,爷青回
  10. 联想用u盘重装系统步骤_用u盘给联想笔记本装系统
  11. 直播视频网站源码,进度条渐变效果
  12. Koch snowflake fractal (科赫雪花分形)
  13. 如何去除discuz X2论坛网址中的forum.php
  14. 十大常用前端UI组件库
  15. CentOS7.6安装Git(IUS方式)
  16. 鸿蒙os2无法使用时钟,mate30pro鸿蒙系统无法加载时钟小部件
  17. 关于两道算法题的思路与解释
  18. Android app启动白屏适配方案
  19. 安卓app上传到应用宝、360手机助手、小米应用商店、百度手机助手/安卓市场/91助手...
  20. SQL学习(3)——表的复杂查询与函数操作

热门文章

  1. SpringBoot基础入门篇
  2. thinkphp thinkadmin使用phpspreadsheet批量导出excel数据
  3. 新来一00后,给我卷崩溃了..
  4. NXP i.MX 8M Mini 开发板规格参数,四核ARM Cortex-A53 + ARM Cortex-M4
  5. 钉钉老版本下载3.31_钉钉旧版最新版_钉钉旧版官方下载_钉钉旧版PC版-华军软件园...
  6. arm-xm-linux交叉编译openssl
  7. 【mysql】如何对 时分秒 不规则的数据排序 处理为正常的升序或者降序
  8. 期权分仓系统是什么?期权分仓软件的原理又是什么?
  9. Arduino 函数语法详解(含示例)三
  10. 系统解剖学 | 周围神经系统 | 脑神经