【AcWing】蓝桥杯集训每日一题Day9|区间合并|1343.挤牛奶(C++)

1343.挤牛奶
1343. 挤牛奶 - AcWing题库
难度:简单
时/空限制:1s / 64MB
总通过数:4627
总尝试数:13242
来源:
usaco training 1.3
算法标签区间合并差分

题目内容

每天早上 5 点,三名农夫去牛场给奶牛们挤奶。
现在从 5 点开始按秒计时,第一名农夫在第 300 秒开始给牛挤奶,并在第 1000 秒停止挤奶。
第二名农夫在第 700 秒开始给牛挤奶,并在第 1200 秒停止挤奶。
第三名农夫在第 1500 秒开始给牛挤奶,并在第 2100 秒停止挤奶。
从开始挤奶到挤奶完全结束,这一期间,至少存在一名农夫正在挤奶的连续时间段的长度最长为 900 秒(第 300 秒至第 1200 秒),完全没有任何农夫在挤奶的连续时间段的长度最长为 300 秒(第 1200 秒至第 1500 秒)

现在给你 N 名农夫挤 N 头奶牛的工作时间表,请你求出:

  1. 至少存在一名农夫正在挤奶的连续时间段的最长长度。
  2. 没有任何农夫在挤奶的连续时间段的最长长度。
    注意:本题中给出的所有时间均为时刻(时间点),因此在本题中挤奶区间 [100,200][201,300] 中间会有长度为 1 秒的间歇时间。
输入格式

第一行包含整数 N,表示农夫数量。
接下来 N 行,每行包含两个非负整数 l,r,表示农夫挤奶的开始时刻和结束时刻。

输出格式

共一行,包含两个整数,分别表示最长连续挤奶时间以及最长连续无人挤奶时间。

数据范围

1≤N≤5000,
0≤l≤r≤10^6

输入样例:
3
300 1000
700 1200
1500 2100
输出样例:
900 300
题目详解

给出的不是时间而是时刻

求出至少有一名农夫正在挤奶的连续时间段的最大长度
就是求这些区间的并集
按题中的例子
第一个区间是900,第二个区间是600
第一问的答案就是900
![[Pasted image 20240330191918.png]]

没有任何农夫在挤奶的连续时间段的最长长度
合并完所有区间以后,找到最左边一个端点和最右边一个端点,看一下中间间隔的最大距离
例子里只有一个间隔300
所以第二问的答案是300

给若干个区间,把所有区间合并一下,找一下合并之后区间的最大长度,和合并之后所有区间中间的最大空缺的长度

N的范围是5000,时间复杂度控制在 O ( n 2 ) O(n^2) O(n2)以内就可以

合并区间有一个模板算法
803.区间合并

代码
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;#define x first
#define y secondtypedef pair<int, int> PII;const int N = 5010;//定义区间长度
int n;
//定义区间的数组
PII segs[N];int main()
{//读入所有区间个数scanf("%d", &n);//读入所有区间for (int i = 0; i < n; i ++)scanf("%d%d", &segs[i].x, &segs[i].y);//将所有区间排序sort(segs, segs + n);int res1 = 0, res2 = 0;//区间合并的模板//l,r先指向第一个区间int l = segs[0].x, r = segs[0].y;//枚举一下所有的区间,从第二个开始for (int i = 1; i < n; i ++){//当前区间的左端点小于等于r的话,就更新一下rif (segs[i].x <= r)r = max(r, segs[i].y);//否则表示找到了一个区间else{//先更新一下第一问的长度res1 = max(res1, r - l);//再更新一下第二问的长度res2 = max(res2, segs[i].x - r);//更新一下当前维护的区间l = segs[i].x, r = segs[i].y;}}//更新一下最后维护的区间res1 = max(res1, r - l);printf("%d %d\n", res1, res2);return 0;
}

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

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

相关文章

springboot程序文件上传集成腾讯云cos

前提&#xff1a;有腾讯云服务器并开通cos对象存储 创建cos存储桶&#xff08;访问权限需要设置为共有读私有写&#xff0c;这样到时上传的文件才可以通过链接访问&#xff09; 创建cos对象存储访问密钥拿到secretId和secretKey 注意创建的密钥一定要保存好后期是无法再次次…

Node.js中Router的使用

文章目录 介绍router的优点1.导入Express和创建Router&#xff1a;2. 定义路由&#xff1a;3.将router暴露到模块外&#xff1a;4. 将Router挂载到Express应用中&#xff1a;4.1.引入router4.2.使用中间件让router在Express应用中生效(三种写法) 5. 完整示例&#xff1a;5.1.编…

Unity 学习日记 13.地形系统

下载源码 UnityPackage 1.地形对象Terrain 目录 1.地形对象Terrain 2.设置地形纹理 3.拔高地形地貌 4. 绘制树和草 5.为地形加入水 6.加入角色并跑步 7.加入水声 右键创建3D地形&#xff1a; 依次对应下面的按钮 || 2.设置地形纹理 下载资源包 下载资源包后&#x…

使用Flink实现MySQL到Kafka的数据流转换

使用Flink实现MySQL到Kafka的数据流转换 本篇博客将介绍如何使用Flink将数据从MySQL数据库实时传输到Kafka&#xff0c;这是一个常见的用例&#xff0c;适用于需要实时数据connector的场景。 环境准备 在开始之前&#xff0c;确保你的环境中已经安装了以下软件&#xff1a;…

Linux课程____shell脚本应用

:一、认识shell 常用解释器 Bash , ksh , csh 登陆后默认使用shell&#xff0c;一般为/bin/bash&#xff0c;不同的指令&#xff0c;运行的环境也不同 二、 编写简单脚本并使用 # vim /frist.sh //编写脚本文件&#xff0c;简单内容 #&#xff01;/bin/bash …

Astro 宣布:将超过 500 多个测试从 Mocha 迁移到了 Node.js

近期&#xff0c;Astro 在其官方博客中宣布&#xff0c;虽然我们对 Mocha 感到满意&#xff0c;但也在寻求让我们的 CI 作业更快的方法。最终将超过 500 多个测试从 Mocha 迁移到了 Node.js。 先了解下 Astro 是什么&#xff1f;Astro 是适合构建像博客、营销网站、电子商务网站…

简单了解策略模式

什么是策略模式&#xff1f; 策略模式提供生成某一种产品的不同方式 Strategy策略类定义了某个各种算法的公共方法&#xff0c;不同的算法类通过继承Strategy策略类&#xff0c;实现自己的算法 Context的作用是减少客户端和Strategy策略类之间的耦合&#xff0c;客户端只需要…

基于单片机温湿度PM2.5报警设置系统

**单片机设计介绍&#xff0c;基于单片机温湿度PM2.5报警设置系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机温湿度PM2.5报警设置系统概要主要涵盖了系统的整体设计思路、硬件组成、软件实现以及报警功能等关键方…

在Arduino IDE中使用文件夹组织源文件和头文件

在Arduino IDE中使用文件夹组织源文件和头文件 如果你是一名Arduino爱好者&#xff0c;你可能会发现随着项目的复杂度增加&#xff0c;代码的管理变得越来越困难。在Arduino IDE中&#xff0c;你可以通过使用文件夹来更好地组织你的源文件和头文件&#xff0c;使得代码更加清晰…

腾讯云2核2G服务器优惠价格,61元一年

腾讯云2核2G服务器多少钱一年&#xff1f;轻量服务器61元一年&#xff0c;CVM 2核2G S5服务器313.2元15个月&#xff0c;轻量2核2G3M带宽、40系统盘&#xff0c;云服务器CVM S5实例是2核2G、50G系统盘。腾讯云2核2G服务器优惠活动 txybk.com/go/txy 链接打开如下图&#xff1a;…

深入理解React的setState机制

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

前端工程师————HTML5学习

HTML5基础 开发工具很多&#xff0c;其中Hbulider较好用&#xff0c;下载网址如下&#xff1a; DCloud - HBuilder、HBuilderX、uni-app、uniapp、5、5plus、mui、wap2app、流应用、HTML5、小程序开发、跨平台App、多端框架 html表示整个页面 head表示搜素框 body表示内容 ti…

【第十二届“泰迪杯”数据挖掘挑战赛】【2024泰迪杯】B题基于多模态特征融合的图像文本检索—解题全流程(论文更新)

【第十二届“泰迪杯”数据挖掘挑战赛】【2024泰迪杯】B题基于多模态特征融合的图像文本检索更新&#xff08;论文更新&#xff09; ​ 本节主要更新了论文、训练日志的log数据提取&#xff08;Loss、ACC、RK&#xff09;等数据可视化作图的代码 B题交流QQ群&#xff1a; 4583…

rabbitMQ的基础操作与可视化界面

当你安装好RabbitMq时&#xff0c;可以 尝试一下&#xff0c;这些命令 启动rabbitMQ服务 #启动服务 systemctl start rabbitmq-server #查看服务状态 systemctl status rabbitmq-server #停止服务 systemctl stop rabbitmq-server #开机启动服务 systemctl enable rabbitmq-…

09_Web组件

文章目录 Web组件Listener监听器ServletContextListener执行过程 Filter过滤器Filter与Servlet的执行 案例&#xff08;登录案例&#xff09; 小结Web组件 Web组件 JavaEE的Web组件&#xff08;三大Web组件&#xff09;&#xff1a; Servlet → 处理请求对应的业务Listener →…

RVM安装ruby笔记

环境 硬件&#xff1a;Macbook Pro 系统&#xff1a;macOS 14.1 安装公钥 通过gpg安装公钥失败&#xff0c;报错如下&#xff1a; 换了几个公钥地址&#xff08;hkp://subkeys.pgp.net&#xff0c;hkp://keys.gnupg.net&#xff0c;hkp://pgp.mit.edu&#xff09;&#xff0c;…

ML-Decoder: Scalable and Versatile Classification Head

1、引言 论文链接&#xff1a;https://openaccess.thecvf.com/content/WACV2023/papers/Ridnik_ML-Decoder_Scalable_and_Versatile_Classification_Head_WACV_2023_paper.pdf 因为 transformer 解码器分类头[1] 在少类别多标签分类数据集上表现得很好&#xff0c;但由于其查询…

css3之动画animation

动画animation 一.优点二.定义和使用三.动画序列和解释四.常见属性及解释五.简写&#xff08;名字和时间不能省略&#xff09;&#xff08;持续时间在何时开始的时间前&#xff09;&#xff08;简写中无animation-play-state)六.例子1.大数据热点图2.奔跑的熊大&#xff08;一个…

设计模式6--抽象工厂模式

定义 案例一 案例二 优缺点

代码随想录-二叉树(路径)

目录 257. 二叉树的所有路径 题目描述&#xff1a; 输入输出描述&#xff1a; 思路和想法&#xff1a; 404. 左叶子之和 题目描述&#xff1a; 输入输出描述&#xff1a; 思路和想法&#xff1a; 513.找树左下角的值 题目描述&#xff1a; 输入输出描述&#xff1a;…