interval coverage

题意理解:给定一个区间,我们需要把这个区间覆盖掉。问最少需要的区间数目。当然我们会给定 n 个区间选择。假设全选都不能覆盖就输出 − 1 -1 1

思路分析:我感觉应该是找区间的端点。假设区间的左端点是 s ,右端点是 t ,我们枚举的区间的左端点尽可能靠近 s ,右端点尽可能靠近 t ,这样的贪心策略就可以使得选择的区间数目,还需要检测区间内部是不是完整地被覆盖了。需要枚举的区间按照左端点排序。选择的是那个最靠近 s 的区间作为选择的第一个区间。更新的思路是找最大的左端点,让这个左端点小于等于前面选择的区间的右端点,这样才能保证被覆盖了。最后要判断区间的右端点要超过 t 这个点,但是不能超过太多。但是我们贪心只能从一端开始贪心,是不是要从左边往右边贪心一遍,然后从右边往左边贪心一次,然后取一个最小值呢。

看了一下题解,好像和我的思路不是太像,但是有一些相似之处,毕竟同一题,不过思路和实现之间隔着一个银河系,感觉,我没啥信心把这题写出来。

#include<iostream>
#include<algorithm>using namespace std;const int N=100000+10;
int n;
int st,ed;
struct Range{int l,r;bool operator< (const Range &W)const{return l<W.l;}
}range[N];int main(){scanf("%d%d",&st,&ed);scanf("%d",&n);for(int i=0;i<n;i++){int l,r;scanf("%d%d",&l,&r);range[i]={l,r};}sort(range,range+n);int ans=0;bool success=false;for(int i=0;i<n;i++){int j=i;int r=-2e9;while(j<n&&range[j].l<=st){r=max(r,range[j].r);j++;}if(r<st){break;//表示不可能覆盖掉}ans++;if(r>=ed){success=true;break;}st=r;i=j-1;//假设现在的 j 比较到某一位了,找到了一个最大值,然后我们更新了 st//我们需要枚举下一个区间,但是这个时候已经不满足条件了,所以需要返回前面那个//满足条件的区间,应该是这个意思,对的,就是现在下一个区间的左端点没在 st 的左边//得更新 st }if(!success){ans=-1;}printf("%d\n",ans);return 0;
}

其他

故事的结局是否重要,很多人以为的结局是这样一种场景,杂志社的编辑告诉你,还有三个月交稿,多想多看,写坏了没关系,我们时间充裕,重新再写,好好写。

其实不是。

真正的结局是某个下午,你午睡醒来,在纸上潦草画了几笔,房门忽然被敲响,来人问你写到了哪,不管上面写了什么,你有多不甘心,多想要修改,这页就是结局。

世事无常,人生不如意太多太多。

愿大家珍惜眼前人,自己所爱之人,所爱之事,认真地过完这一生,莫要后悔。

我家先生,我喜欢他多年,从高中开始,直到现在。

感触颇深。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Dify】Dify自定义模型设置 | 对接DMXAPI使用打折 Openai GPT 或 Claude3.5系列模型方法详解

一、Dify & DMXAPI 1、Dify DIFY&#xff08;Do It For You&#xff09;是一种自动化工具或服务&#xff0c;旨在帮助用户简化操作&#xff0c;减少繁琐的手动操作&#xff0c;提升工作效率。通过DIFY&#xff0c;用户能够快速完成任务、获取所需数据&#xff0c;并且可以…

C++编程基础之override关键字

在C中&#xff0c;override关键字用于显式地标识派生类中的成员函数是对基类中虚函数的重写&#xff0c;具有以下重要作用和使用说明&#xff1a; 作用 增强代码可读性&#xff1a;通过使用override关键字&#xff0c;能够清晰地向阅读代码的人表明该函数是有意重写基类中的虚…

Redis数据库笔记—— Hash(哈希)的扩容机制(rehash)

大家好&#xff0c;这里是Good Note&#xff0c;关注 公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。详细介绍Hash&#xff08;哈希&#xff09;的扩容机制(rehash)、源码、以及扩容和缩容过程。 文章目录 Redis 字典&#xff08;dict&#xff09;结构源码哈希…

Python自学 - 封装与私有化

1 Python自学 - 封装与私有化 1.1 封装的概念 封装是指将数据和方法封装在一起&#xff0c;并且需要通过类的实例来访问&#xff0c;这样就可以确保合适的方法来处理合适的数据&#xff0c;并可以做到只给外界看到想给外界看到的接口&#xff0c;减少数据或方法被滥用的风险。…

网络安全常见的问题

1. 什么是 DDoS 攻击&#xff1f;如何防范&#xff1f; 答&#xff1a;DDoS 攻击是指利用大量的计算机或者其他网络设备&#xff0c;同时向目标网络或者服务器 发送 大量的数据流量&#xff0c;以致其无法正常工作&#xff0c;从而导致网络瘫痪或者服务器宕机的攻击行 为。 …

<rust>在rust中,实现32位浮点数与16进制之间的转换

前言 本文是基于rust&#xff0c;对16进制、32位浮点数之间的互相转换的一个简单示例。 环境配置 系统&#xff1a;windows 平台&#xff1a;visual studio code 语言&#xff1a;rust 库&#xff1a;hex 关键依赖 hex"0.4.3"对于字符串与16进制之间的互相转换&am…

pytest日志显示

在 pytest 中&#xff0c;可以通过 钩子函数 和 配置文件 pytest.ini 配置日志的显示方式&#xff0c;实现对日志的灵活控制。以下是常用实现方式及配置说明。 方式一&#xff1a;使用 conftest.py 钩子函数自定义日志显示 通过 conftest.py 文件中的钩子函数&#xff0c;实现…

支持向量机算法(一):像讲故事一样讲明白它的原理及实现奥秘

1、支持向量机算法介绍 支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种基于统计学习理论的模式识别方法&#xff0c; 属于有监督学习模型&#xff0c;主要用于解决数据分类问题。SVM将每个样本数据表示为空间中的点&#xff0c;使不同类别的…

ES中的仓库和快照

文章目录 简介仓库&#xff08;Repository&#xff09;快照&#xff08;Snapshot&#xff09;常用命令记录 简介 在Elasticsearch&#xff08;简称ES&#xff09;中&#xff0c;仓库&#xff08;repository&#xff09;和快照&#xff08;snapshot&#xff09;是两种重要的备份…

数据结构与算法之二叉树: LeetCode 108. 将有序数组转换为二叉搜索树 (Ts版)

将有序数组转换为二叉搜索树 https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/ 描述 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列请你将其转换为一棵 平衡 二叉搜索树 示例 1 输入&#xff1a;nums [-10,-3,0,5,9…

Neo4j的部署和操作

注&#xff1a;本博文展示部署哥操作步骤和命令&#xff0c;具体报告及运行截图可通过上方免费资源绑定下载 一&#xff0e;数据库的部署与配置 在单个节点上对进行数据库的单机部署 &#xff08;1&#xff09;上传neo4j-community-3.5.30-unix.tar.gz到hadoop1的/export/so…

人工智能 前馈神经网络练习题

为了构建一个有两个输入&#xff08; X 1 X_1 X1​、 X 2 X_2 X2​&#xff09;和一个输出的单层感知器&#xff0c;并进行分类&#xff0c;我们需要计算权值 w 1 w_1 w1​和 w 2 w_2 w2​的更新过程。以下是详细的步骤和计算过程&#xff1a; 初始化参数 初始权值&#xff1a…

【博主推荐】 Microi吾码开源低代码平台,快速建站,提高开发效率

&#x1f36c;引言 &#x1f36c;什么是低代码平台&#xff1f; 低代码平台&#xff08;Low-Code Platform&#xff09;是一种使开发人员和业务用户可以通过图形化界面和少量的编程来创建应用程序的开发工具。与传统的编程方式相比&#xff0c;低代码平台大大简化了开发过程&a…

opencv CV_TM_SQDIFF未定义标识符

opencv CV_TM_SQDIFF未定义标识符 opencv4部分命名发生变换&#xff0c;将CV_WINDOW_AUTOSIZE改为WINDOW_AUTOSIZE&#xff1b;CV_TM_SQDIFF_NORMED改为TM_SQDIFF_NORMED。

理解 Tomcat 架构与自定义实现

前言 Tomcat 是一个轻量级的 Web 容器&#xff0c;被广泛应用于 Java Web 开发中。通过它&#xff0c;我们可以轻松地部署和运行 Web 应用。在本文中&#xff0c;我们将深入分析 Tomcat 的核心架构&#xff0c;同时结合一段代码&#xff0c;手动实现一个简化的 Tomcat 服务&am…

Harbor 仓库部署(docker-compose 部署方式)

一、 安装的前提条件 硬件 资源 最低 推荐 cpu2C4C内存4G8G硬盘40G160G 软件 软件 版本 描述 dockerv17.0.6-ce 安装参考官方文档 Install Docker Engine | Docker Documentation docker-composev1.18.0 安装参考官方文档 Overview | Docker Documentation Openssllatest…

使用Llama 3.1创建合成数据集以调优你的大型语言模型

使用Llama 3.1创建合成数据集以调优你的大型语言模型 在数据驱动的人工智能领域&#xff0c;数据是核心资产。开发高质量数据集既复杂又昂贵&#xff0c;因此很多实验室和开发者选择使用合成数据集。本文将介绍如何利用大型语言模型Llama 3.1 405B创建合成数据集&#xff0c;并…

用户界面软件02

基于表单的用户界面 在“基于表单的用户界面”里面&#xff0c;用户开始时选中某个业务处理&#xff08;模块&#xff09;&#xff0c;然后应用程序就使用一系列的表单来引导用户完成整个处理过程。大型机系统上的大部分用户界面都是这样子的。[Cok97]中有更为详细的讨论。 面…

go如何从入门进阶到高级

针对Go语言的学习&#xff0c;不同阶段应采取不同的学习方式&#xff0c;以达到最佳效果.本文将Go的学习分为入门、实战、进阶三个阶段&#xff0c;下面分别详细介绍 一、社区 Go语言中文网 作为专注于Go语言学习与推广的平台&#xff0c;Go语言中文网为开发者提供了丰富的中…

采用标准化的方式开展设计-研发中运用设计模式

概述 实现规范化、标准化的引导式设计&#xff0c;以业务需求为输入&#xff0c;识别业务特点&#xff0c;并通过引导式设计&#xff0c;找到最适合的设计模式、具体方案&#xff0c;汇总成为应用的设计&#xff0c;拉齐各应用的设计一的致性。 采用标准化的方式开展设计…