当前位置: 首页 >> 商务
AcWing905.区间选点
来源:博客园     时间:2023-05-22 20:01:25

题目详情

知识点

区间贪心为什么叫贪心呢?

——短视,每次只是在看眼前的东西,在眼前的决策中选一个最优解。而贪心就是根据这种策略能够走到全局最优解的方法【如果用函数图像来表示就是一个单峰的图】


【资料图】

贪心的普遍方案

一般来说贪心问题没有思路的时候我们可以先随便试一下,再去举一些例子看自己的方法有什么缺漏,如果没什么问题的话就去证明一下这个方法的有效性

思路

自己的思路:(错误的仅供参考)

对于这种题不知道为什么总是下意识想按照左端点排序,然后再一个个判定,但是这样会忽略一种情况

对于上图这种情况,我会默认放在较大区间的右端点处,但是这种情况对于区间[-8,4]里面是没有点的!

n = int(input())arr = []for i in range(n):    l,r = map(int,input().split())    arr.append([l,r])arr.sort(key=lambda x:x[0])res = 1l = arr[0][1]print(l)for i in range(1,n):    if arr[i][0] > l:        res += 1    l = max(l,arr[i][1])print(res)

正确的思路

区间贪心问题的分析:无外乎就是排序(按左端点or右端点or双关键字)

先试想一个方法:

  • 将每个区间按右端点从小到大排序
  • 从前往后依次枚举每个区间
    • 如果当前区间中已经包含点,则直接pass
    • 否则,选择当前区间的右端点

好的,我们现在找到了一个算法,现在我们得证明该算法的有效性

我们可以利用数学中的证明方法:要证明A=B

就要证明①A≥B;②A≤B。我们遵循这个思路进行证明

用ans表示最终答案,用cnt表示通过该算法求出的答案

首先每个区间一定都包含一个点,因此当前选点方案肯定是一组合法方案

本题的最优解指的是:所有合法方案中的最小值,所以有①ans≤cnt

对于算法第二步的第二种情况,对所有没被pass的情况

第一个区间肯定被选了,那下一个被选的点肯定是与当前这个区间没有任何交点的区间,如下图所示然后我们依次找到了cnt个点,对应cnt个区间,是从左到右互不相交的区间

所以如果要覆盖这些区间,那至少要用cnt个点,而题目要求我们所选的点要覆盖所有区间(一定包括这些互不相交的区间)

所以可选方案一定要包括这些点②ans≥cnt

因此,ans=cnt,方法可行

代码

n = int(input())arr = []for i in range(n):    l,r = map(int,input().split())    arr.append([l,r])arr.sort(key=lambda x:x[1])res = 1r = arr[0][1]for i in range(1,n):    if arr[i][0] > r:        res += 1  # 放一个点        r = arr[i][1] # 放在右端点print(res)

自己思路的优化

以上是比较好理解的思路,但其实用左端点排序(就是我自己的思路的方法)也可以,但是在更新的过程中要取最小值。因为左端点排序的话,一个大区间会存在多个小区间;那么要想点数尽可能少,那么就选择小区间的右端点作为覆盖点,小区间可以覆盖大区间,但是不能覆盖大区间内另一个没有重复区域的小区间,所以要维护最右端点值

n = int(input())arr = []for i in range(n):    l,r = map(int,input().split())    arr.append([l,r])arr.sort(key=lambda x:x[0])res = 1r = arr[0][1]for i in range(1,n):    if arr[i][0] > r:        res += 1        r = arr[i][1]    else:        r = min(r,arr[i][1])print(res)
标签:
AcWing905.区间选点 题目详情![](https: img2023 cnblogs com blog 2826001 202305 2826001-20230522193234818-1657453835 pn
“旱改水”田披“绿装” 农田改造促增产增收 央视网消息:眼下,在广西贺州市富川瑶族自治县,当地的“旱改水”田正值水稻种植期,农民忙着插秧种水...
今日精选:武陵源区索溪中心学校开展心理健康主题教育活动 主题班会国旗下展示《挫折是一首歌》红网时刻张家界5月22日讯(通讯员刘芳)为进一步促进学生的心理健康发
《塞尔达传说 王国之泪》水与火神庙解谜攻略 《塞尔达传说:王国之泪》已经于2023年5月12日发售。很多玩家想知道游戏中水与火神庙怎么过,九游游戏小编
青海果洛州揉丝草:让牛羊冬春季不再挨饿 中新网青海果洛5月22日电(刘洋)“当地牧场收割以后,通过揉丝截断、压包牧草,真空保存,延长保存时间。通
世界快播:不堪入目!DAZN披露球迷辱骂小熊内容:在你死去的家人身上拉屎 今天凌晨,维尼修斯在皇马0-1不敌瓦伦西亚的比赛中遭遇对方球迷的种族歧视,DAZN今日披露了瓦伦球迷对球员
环球报道:加拿大和欧洲时差_欧洲时差 1、西欧旅游城市与中国时差英国-英格兰-伦敦*时差:-7个小时比利时-布鲁塞尔*时差:-6个小时荷兰-阿姆斯特丹*
“劳”以启智,“动”以润心,上海师大的劳动育人“亮”了!|快看 “劳”以启智,“动”以润心上海师大2023年“劳动育人宣传周”系列活动广泛开展劳动教育活动引导学生学...
富瑞:予银河娱乐(00027)“买入”评级 目标价60港元 富瑞发布研究报告称,予银河娱乐(00027)“买入”评级,目标价60港元。公司今年首季业绩与同行近期表现一...
32个中国最美古村落,余生慢慢走遍 小桥流水,石板巷陌微醺的岁月,醉人的暖风……有古镇情结的人,骨子里都有那么一丝丝浪漫因子,总想将...
环球速读:晋江市政府第27次常务会召开 晋江市政府第27次常务会召开
今年以来广东立案查处餐饮浪费案件341件-精彩看点 据广东省市场监督管理局消息,自3月部署开展制止餐饮浪费专项行动以来,广东省市场监管局聚焦餐饮浪费重点
投资123亿元 湖北现代煤化工项目进展 投资123亿元湖北现代煤化工项目进展,近日,中国化学工程第三建设有限公司承建的华鲁恒升(荆州)有限公司合
曝CBA国字号内线与老东家闹翻!索要顶薪遭拒,或被交易 快资讯 曝CBA国字号内线与老东家闹翻!索要顶薪遭拒,或被交易,内线,吴冠希,cba,江苏队
知乎正式上线“盐言故事”,历时三年领跑网文短篇赛道|全球观焦点 5月18日,知乎宣布旗下全新故事品牌“盐言故事”App正式上线。新品牌脱胎于知乎原故事业务,定位原生短...
2023年退休人员基本养老金上调3.8% 每日精选 明确从2023年1月1日起,为2022年底前已按规定办理退休手续,并按月领取基本养老金的企业和机关事业单位退休
马拉松,带动城市步入“新跑道” 原标题:马拉松,带动城市步入“新跑道”近期,北京密云和大兴、吉林长春、河北定州安国等多地全程和半...
瞬间就是一年,转眼就是一生(写得真好)-环球热消息 在生命里,不管有多少遗憾,多少酸痛,幸也好,不幸也好,都是过去,全是曾经,放下,就会轻松。于人生中,
当前要闻:《英雄时代》定档5月26日 辛柏青李光洁英雄本色 刘佩琦倪大红正邪对垒 《英雄时代》是由中国国家话剧院推出的线上演播品牌——CNT现场的首部作品。该剧由剧院青年导演白皓天执...
三星Note10手机的评测_当前速递 作为今年的旗舰手机之一,三星Note10在发布后引起了用户的关注。那么,这款手机究竟如何呢?以下是本文对三
报道:三门峡通报34名教师反映编制问题:目前全部在岗,将妥善解决 新京报讯5月22日,河南省三门峡市教育局发布情况通报回应34名教师反映编制问题。通报称,目前34名教师全部
苏迪曼杯中国队实力卫冕!苏州金龙客车圆满护航 作为苏州本土唯一的自主客车品牌,苏州金龙海格客车自5月14日比赛伊始即参与到现场交通服务中来,配合江苏
5月22日昆明市官渡区妇幼健康服务中心四价HPV疫苗预约指南-环球新资讯 昆明市官渡区妇幼健康服务中心预约时间:2023 5 22早上09:00疫苗类型及数量:四家HPV疫苗(300支)PS:仅限第
到手只要1799元!Apple Watch SE迎来史低 AppleWatchSE2022智能手表GPS款40mm京东活动价1999元,使用满1000-200元券,最终1799元到手,超值好价!它
世界短讯!何赛飞回应热搜:并非痛斥梅花奖,有自媒体断章取义 何赛飞接受记者回应“痛斥梅花奖”,她表示:“梅花奖是中国演员们为之奋斗的艺术最高标准,我拼命鼓励...

广告

X 关闭

广告

X 关闭