首页 > 其他分享 >线段覆盖问题

线段覆盖问题

时间:2024-08-29 15:16:12浏览次数:10  
标签:last 覆盖 int 线段 问题 ss 端点 cmp

1.线段不覆盖问题

给出 \(n\) 个线段,选择尽量多的线段使得线段无重叠,问最多可以选多少条线段。

解析

考虑贪心,将线段按右端点从小到大排序,如果这条线段的左端点大于上一条线段的右端点那就选择这条线段。

为什么这么贪是对的呢,因为将右端点排序可以使右边剩余的空间尽量大,那么剩余的选择就可能会更大,而且每个线段对答案贡献都为一,我可以剩下更多的空间,我们价值都为一,那我为什么要给你(贪心真残酷)。

代码

#include<bits/stdc++.h>
using namespace std;
int n;
struct ss{
	int s,t;//s:开始,t:结束
}a[1000005];
bool cmp(ss g,ss h){
	return g.t<h.t;	
}
int main(){
	ios::sync_with_stdio(false);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].s>>a[i].t;
	}
	sort(a+1,a+n+1,cmp);
	int last=0,ans=0;//last:上一个选择线段的右端点
	for(int i=1;i<=n;i++){
		if(last<=a[i].s){//因为不能重叠
			ans++;
			last=a[i].t;//更新
		}
	}
	cout<<ans;
    return 0;
}

标签:last,覆盖,int,线段,问题,ss,端点,cmp
From: https://www.cnblogs.com/sadlin/p/18386740

相关文章

  • ORACLE中行锁问题排查手段
    概念描述行锁,对应等待事件’enq:TX-rowlockcontention’。是应用环境中经常碰到的故障现象。当发生行锁时,往往意味着大量业务会话被阻塞。造成业务功能无法进行。因此需要尽快排查出问题源头及原因。采取有效的处理措施。关于行锁等待事件enq:TX-rowlockcontention,通......
  • win10 yolov8 训练问题集锦
    1.win10cmd命令行训练 要先激活虚拟环境,命令如下:D:cdD:\\ultralytics-main\\venv\\Scriptsactivate.batcd..\\..yolotraindata=D:\\ultralytics-main\\datasets\\zmbh.yamlmodel=D:\\ultralytics-main\\yolov8mepochs=5000imgsz=640batch=2workers=......
  • 9:00面试,9:05就出来了,问的问题有点出乎意料!
    从小厂跳槽出来,本以为能在新公司大展拳脚,没想到没多久就再次遭遇困境。入职初期,加班成了家常便饭,尽管如此,考虑到薪酬还算可观,我并没有过多抱怨。然而,到了六月,一纸通知打破了平静——公司宣布薪资要下调百分之四十。这样一来,连基本的生活开销都成了问题。这一连串的变故让我措......
  • Luogu P4425 转盘 题解 [ 黑 ] [ 线段树 ] [ 贪心 ] [ 递归 ]
    转盘:蒟蒻的第一道黑,这题是贪心和线段树递归合并的综合题。贪心破环成链的trick自然不用多说。首先观察题目,很容易发现一个性质:只走一圈的方案一定最优。这个很容易证,因为再绕一圈回来标记前面的和等前面的标记完之后继续走是等价的,并且再绕一圈甚至可能更劣。于是,我们只用走......
  • Linux日志查看命令,大日志文件排查问题
    查询关键日志行号,再根据行号查询 cat-ncatalina.out|grep15153294092 cat-ncatalina.out|tail-n+3230539|head-n10 tail-n+3230539表示查询3230539行之后的日志 head-n10则表示在前面的查询结果里再查前10条记录 查看指定时间段内的日志 grep'06-2512:08'......
  • AdornerDecorator的CacheMode绑定和windows锁屏导致TableControl锁死问题
    有个wpf项目,从.netframework4.0刚出来就在用,现在慢慢的系统从win xp到win10了。升级到.net8后发现一个怪异的现象,就是当windows按Win+L锁屏后,某个TableControl里面的TableItem无法激活了,就和Disable了一样的现象。经过各种尝试,最终逐步删代码,发现一个子控件里面的依据代码删......
  • 图论-基础概念与问题(2)
    我们将展示一些(多少有点难度的)图论问题。计数类例1设\(n\)是正整数,\(G\)有\(12n\)个顶点,每个顶点的度数都是\(3n+6\),且任何两个顶点的公共邻点数相同,求\(n\)的值。对这类计数类问题,常见的做法是进行算两次。对于公共邻点,常见的统计对象是三元组\((u,v,w)\),其中\(......
  • 用MySQL的GROUP_CONCAT函数轻松解决多表联查的聚合问题
    大家好呀,我是summo,最近遇到了一个功能需求,虽然也是CURD,但属于那种比较复杂一点的CURD,话不多说,我们先看一下需求。需求如下:有三张表,学生表、课程表、学生课程关联表,关联关系如下图:要求实现的功能:支持输入名称模糊查询,可以是学生名称也可以是课程名称,但只有一个输入框;要求以......
  • 前端解决若依项目登录超时问题
    我正在用若依的表单工具制作表单呢,刚画完,准备下载,给我来个登录超时,退到登录界面,心态直接崩溃!!!找到下面这个文件注释掉下面这段代码if(code===401){//if(!isRelogin.show){//isRelogin.show=true;//MessageBox.confirm('登录状态已过期,您可以继续留......
  • 解决 .nuget 占用C盘大量空间问题
    背景最近C盘不够用了,一个个排除,发现C:\Users\用户(比如:dell).nuget 这个文件夹与日俱增。这是平时我使用vs2022的nuget安装包的时候,很多包就会安装到这个默认的目录。大概占用C盘13个G,有没有办法修改这个目录呢修改目录直接到环境变量的系统变量中添加一个变量 NUGET_PACKA......