当前位置: 首页 > news >正文

选点问题的贪心解法

最近在算法课上学到了贪心算法,老师布置了这个“选点问题”。题目要求在数轴上选最少的点,使得每个给定区间都至少包含一个点。

我一开始试着画了几个例子。比如给三个区间:[1,3]、[2,4]、[3,5]。如果随便选点,可能在1、2、3各放一个点,用了三个点。但仔细观察,其实选点3就能覆盖所有区间。这让我开始思考,有没有一种系统的方法,总能找到最少的点数?

我尝试了好几种思路。先试了按左端点排序:从最左边的区间开始,在它的右端点放点。但很快就发现有问题,比如区间[1,4]和[2,3],按左端点排序会先在4放点,但其实在3放点更好。又试了按区间长度排序,先处理短的区间,但也不对。

最后试了按右端点排序,画了几个例子发现都得到了正确答案。策略很简单:先把所有区间按照右端点从小到大排好,然后从第一个区间开始,在它的右端点放一个点。接着看下一个区间,如果这个点已经落在下一个区间里,就跳过;如果不落在里面,就在下一个区间的右端点再放一个新点。如此重复下去。

但为什么这样是对的呢?我需要证明这种贪心选择是合理的。假设我们按右端点排序后,第一个区间是[a₁, b₁]。我选择在b₁放点。现在假设存在某个最优解,它覆盖这个区间的点是p(p在[a₁, b₁]内)。如果p不等于b₁,我们可以把p换成b₁。因为b₁≥p,所以b₁仍然在第一个区间内,而且对于后面那些原本被p覆盖的区间,由于它们的右端点都≥b₁,所以b₁很可能也能覆盖它们,至少不会让情况变差。这说明一定存在一个包含b₁的最优解。这样一步一步推下去,每个选择都是“安全”的。

用C++实现起来很简洁。先读入n个区间,存成pair数组,然后按右端点排序。用一个变量last_point记录上一个选择的点,初始设成很小的数。遍历排序后的区间,如果last_point小于当前区间的左端点,说明需要新点,就在当前区间右端点放点,计数器加一。

时间复杂度主要是排序的O(n log n),遍历是O(n),总的是O(n log n)。空间上除了存区间数组,只需要几个变量。

通过这个题目,我对贪心算法有了更深的理解。贪心不是瞎猜,而是基于问题特性做出局部最优的选择,并且要能证明这样的选择不会破坏得到全局最优解的可能性。有时候贪心解法很简单高效,但并非所有问题都能用贪心。关键是要找到那种“当前最好的选择不会让未来无路可走”的问题特征。在实际编程中,贪心算法往往代码简洁,运行效率高,是很实用的算法思想。

http://www.jsqmd.com/news/78033/

相关文章:

  • 2025年12月昭昭医考培训深度评测:专业医考培训机构的实力解析 - 品牌测评鉴赏家
  • 微信域名验证失败?用 Nginx 快速部署文本验证文件
  • Docker网络模式深度实践:bridge到overlay全解析
  • 2025 学生党线上兼职 app 推荐:私域轻创业增收宝典 - 速递信息
  • 破解增长密码:2025国内电商数据分析平台实用选型指南 - 速递信息
  • 安全审计平台:运营商数字化转型的必选项与国内优质厂商全景
  • 2025 年常州混合机与粉碎设备厂家权威推荐榜:高效混合、超微粉碎、万能破碎技术实力深度解析 - 品牌企业推荐师(官方)
  • 2025年12月昭昭医考资料深度评测:专业性与服务体验如何? - 品牌测评鉴赏家
  • 散修带你入门鸿蒙应用开发基础第八节:高阶函数核心解析与应用 - 鸿蒙
  • VDD_EXT应用全解:原理、限制与低功耗设计优化
  • 【MySQL】数据库约束
  • 2025 年快速卷帘门厂家最新推荐榜,聚焦企业技术实力、产品品质与高效服务能力深度剖析 - 品牌鉴赏师
  • 四川工程监理公司排名前五,你绝对不能错过! - 百誉集团
  • 国内排名前五的AI文献综述工具,你绝对不能错过! - 百誉集团
  • AI搜索优化公司不知道怎么选?成都奇林智媒把流程摊开看,让你花钱明明白白 - 奇林智媒GEO
  • 基于MATLAB的RFID防碰撞算法仿真
  • 2025 年 12 月管道电预热工程厂家权威推荐榜:专业设备与高效施工,热力管道电预热工程一站式解决方案精选 - 品牌企业推荐师(官方)
  • 盘点2025年超纯水器/实验室超纯水器/国产超纯水器口碑好/性能好/质量好/品质好的生产企业 - 品牌推荐大师
  • 2025年二手发电机买卖回收权威推荐榜:专业甄选高性价比设备,提供一站式回收与交易服务 - 品牌企业推荐师(官方)
  • 2025 年 12 月冠晶石厂家权威推荐榜:外墙/内墙/防霉/水包水/水包砂/耐污/自洁冠晶石,甄选创新环保饰材品牌 - 品牌企业推荐师(官方)
  • 2025年智能体开发,Agent智能体,智能体数据生成公司推荐:数据精度与生成效率深度盘点 - 品牌鉴赏师
  • PC耐力板哪家可靠?2025优质耐力板厂家最新推荐榜单揭晓 - 深度智识库
  • 儿童补钙牛奶怎么选?我的“配方表筛选法”+ 旺旺低脂高钙牛乳测评笔记(偏家长视角) - AIEO
  • 阿联酋名义雇主EOR推荐:如何通过Safeguard Global人力资源服务商实现合规高效海外雇佣 - 品牌2025
  • 成都工程造价公司排名前五,你知道几家? - 百誉集团
  • 2025户外防水电气品牌TOP5口碑榜:CLIPOL涵维口碑 - mypinpai
  • 2025会计学专业TOP5高校推荐:线上资源与网络课程深度测 - mypinpai
  • 2025年湖南五大高性价比金刚砂地坪材料公司排行榜,专业金刚 - 工业推荐榜
  • 2025年五大口碑好的手表OEM生产厂家排行榜,看哪家服务好 - 工业品牌热点
  • 完整教程:【SpringBoot】33 核心功能 - 指标监控- 指标监控:Spring Boot Actuator 详解