5. D. In Love(贪心)

题目链接

D. In Love

题意

线段的集合,有两种操作

  1. 插入一个线段
  2. 删除一个线段
    每次操作后都要去查询是否存在两个线段不相交

题解

首先先看两个线段不相交需要满足什么条件
ddcdb82d893e33894fc22aff2dfe3c5.jpg
也就是较 大 l > 小 r 大l>小r l>r即可满足不相交
我们进行推广
当集合中,最大的 l > l> l>最小的 r r r时就存在区间不相交
注意是严格大于。
这样我们只需要维护两个集合,左端点的集合和右端点的集合,然后每次查询集合中的最值。
s e t set set m u l t i s e t multiset multiset都可以完成这件事,这道题目里面区间可能重复,所以用 m u l t i s e t multiset multiset去维护最大值最小值即可。

代码

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_backusing namespace std;void solve() {int q;cin>>q;multiset<int>sl,sr;while(q--){char op;cin>>op;int l,r;cin>>l>>r;if(op=='+'){sl.insert(l);sr.insert(r);}else{sl.erase(sl.find(l));sr.erase(sr.find(r));}if(sl.size()<=1||sr.size()<=1){cout<<"NO"<<endl;continue;}int d=(*sl.rbegin())-(*sr.begin());if(d>0){cout<<"YES"<<endl;}else{cout<<"NO"<<endl;}}
}signed main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//	freopen("1.in", "r", stdin);int _;
//	cin>>_;
//	while(_--)solve();return 0;
}

总结

  1. 区间不相交的充要条件
  2. multiset的erase用法
    不小心就用错了,erase可以传入迭代器的位置,也可以传入要删除的值,如果在set里面这两个都可以,在multiset里面一个值可能出现多次,如果传入值,就会把这所有数都删除,如果只想删除一个,可以先用find函数得到一个迭代器的位置再删除

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

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

相关文章

big three(c++)

"Big Three"是指在C类中需要手动实现的三个特殊成员函数&#xff0c;分别是拷贝构造函数&#xff08;Copy Constructor&#xff09;、拷贝赋值运算符&#xff08;Copy Assignment Operator&#xff09;和析构函数&#xff08;Destructor&#xff09;。这三个函数通常…

手撕qsort函数

前言 本篇主要讲解的是qsort函数细节以及运用实例。 紧跟我的脚步一起手撕qsort函数吧~ 欢迎关注​​个人主页&#xff1a;逸狼 更多优质内容&#xff1a; 拿捏c语言指针&#xff08;上&#xff09; 拿捏c语言指针&#xff08;中&#xff09; 拿捏c语言指针&#xff08;下&…

【数据结构/c++】求解有向无环图DAG的关键路径

#include<cstring>//memset头文件 #include<algorithm>//fill头文件 #include<vector> #include<stdio.h> #include<stack> #include<queue> using namespace std; const int MAXV510; struct Node{int v,w;Node(int _v,int _w):v(_v),…

超详细的总结!大模型算法岗面试题(含答案)来了!

文章目录 技术交流一、基础篇二、大模型&#xff08;LLMs&#xff09;进阶三、大模型&#xff08;LLMs&#xff09;LangChain四、大模型分布式训练五、大模型&#xff08;LLMs&#xff09;推理用通俗易懂的方式讲解系列 大模型应该是目前当之无愧的最有影响力的AI技术&#xff…

学习 Kubernetes(K8s)、常用命令

学习 Kubernetes&#xff08;K8s&#xff09;是现代云原生应用开发和部署的关键&#xff0c;它提供了一种灵活的、自动化的方式来管理容器化的应用程序。下面是学习 Kubernetes 和一些常见命令的建议&#xff1a; 学习 Kubernetes 官方文档&#xff1a;Kubernetes官方文档是学…

【Langchain】+ 【baichuan】实现领域知识库【RAG】问答系统

本项目使用Langchain 和 baichuan 大模型&#xff0c; 结合领域百科词条数据&#xff08;用xlsx保存&#xff09;&#xff0c;简单地实现了领域百科问答实现。 from langchain.text_splitter import CharacterTextSplitter, RecursiveCharacterTextSplitter from langchain_co…

2023年便宜的云服务器分享:最低26元4核16G

2024年阿里云服务器租用价格表更新&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服…

嵌入式学习第十九天!(时间获取、文件属性和权限的获取、软链接和硬链接)

时间获取&#xff1a; 1. time time_t time(time_t *tloc); 功能&#xff1a;返回1970-01-01到现在的秒数&#xff08;格林威治时间&#xff09; 参数&#xff1a; tloc:存放秒数空间首地址 返回值: 成功返回秒数 失败返回-1 2. localtime struct tm *localtime(const tim…

python celery使用队列

在celery的配置方法中有个参数叫task_routes&#xff0c;是用来设置不同的任务 消费不同的队列&#xff08;也就是路由&#xff09;。 格式如下&#xff1a; { ‘task name’: { ‘queue’: ‘queue name’ }}直接上代码&#xff0c;简单明了&#xff0c;目录格式如下&#x…

阿里云服务器“镜像”全方面解析

阿里云服务器镜像怎么选择&#xff1f;云服务器操作系统镜像分为Linux和Windows两大类&#xff0c;Linux可以选择Alibaba Cloud Linux&#xff0c;Windows可以选择Windows Server 2022数据中心版64位中文版&#xff0c;阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器操…

day37打卡

day37打卡 738. 单调递增的数字 解法&#xff0c;贪心&#xff1a; 从后向前遍历&#xff0c;找出并记录最终递减的位置&#xff0c;把当前减1&#xff0c;再把后面的全置为9即可。 举个例子&#xff0c;数字&#xff1a;332&#xff0c;从前向后遍历的话&#xff0c;那么就…

【触想智能】国产工控机五大分类你知道吗?

工控机是专门为工业控制设计&#xff0c;用于对生产过程中使用的机器设备、生产流程、数据参数等进行监测与控制的计算机。由于工控机经常会在恶劣的环境下运行&#xff0c;对数据的安全性要求也比较高&#xff0c;因此需要单独定制才能满足需求。 在现代化工业生产过程中&…

时间获取和文件属性和权限获取实现 ‘ls -l’ 功能

一&#xff0c;时间获取: 1.time time_t time(time_t *tloc); 功能: 返回1970-1-1到现在的秒数&#xff08;格林威治时间&#xff09; 参数: tloc:存放秒数空间首地址 返回值: 成功返回秒数&#xff08;用 time_t 类型的变量接&…

不确定性问题的论文笔记

Statistics starting from 01/2024, 仅列出了优秀工作中的一部分 每一年的排列顺序: CVPR, ICLR, ECCV, ICCV, ICML, AAAI, TPAMI&#xff0c;TIP&#xff0c;Arxiv 等 每周更新 2024 论文信息速览笔记是 否 已精读精读笔记Shao W, Xu Y, Peng L, et al. Failure Detection fo…

打开一个网站所经历的过程

浏览器查找网址&#xff08;URL&#xff09;对应的服务器的IP地址&#xff1a; 当你在浏览器输入一个网址&#xff0c;计算机需要知道这个网址对应哪台服务器&#xff0c;所以要先查找这个网址对应的 IP 地址。这一步是通过 DNS&#xff08;域名系统&#xff09;完成的&#xf…

从零学算法240

240.编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,…

代码随想录 Leetcode45. 跳跃游戏 II

题目&#xff1a; 代码(首刷看解析 2024年2月15日&#xff09;&#xff1a; class Solution { public:int jump(vector<int>& nums) {if (nums.size() 1) return 0;int res 0;int curDistance 0;int nextDistance 0;for (int i 0; i < nums.size(); i) {nex…

网页布局之浮动

一&#xff0c;传统网页布局的三种方式 普通流&#xff08;标准流&#xff09;、浮动、定位。 二&#xff0c;标准流&#xff08;普通流/文档流&#xff09; 即为标签按照规定好的默认方式排列。 1.块级元素会独占一行&#xff0c;从上向下顺序排列。 常用元素&#xff1a;…

Mybatis | 初识Mybatis

初识Mybatis 目录: 初识Mybatis什么是Mybatis&#xff1f;Hibernate 和 MyBatis的区别&#xff1f;Mybatis的下载和使用Mybatis的工作原理 作者简介 &#xff1a;一只大皮卡丘&#xff0c;计算机专业学生&#xff0c;正在努力学习、努力敲代码中! 让我们一起继续努力学习&#…

【动态规划专栏】专题二:路径问题--------3.礼物的最大价值

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…