Usaco Training刷怪旅 第二层第一题:Milking Cows

news2025/1/19 20:25:09

usaco training

关注我持续更新usaco training内容

Three farmers rise at 5 am each morning and head for the barn to milk three cows. The first farmer begins milking his cow at time 300 (measured in seconds after 5 am) and ends at time 1000. The second farmer begins at time 700 and ends at time 1200. The third farmer begins at time 1500 and ends at time 2100. The longest continuous time during which at least one farmer was milking a cow was 900 seconds (from 300 to 1200). The longest time no milking was done, between the beginning and the ending of all milking, was 300 seconds (1500 minus 1200).

Your job is to write a program that will examine a list of beginning and ending times for N (1 <= N <= 5000) farmers milking N cows and compute (in seconds):

  • The longest time interval at least one cow was milked.
  • The longest time interval (after milking starts) during which no cows were being milked.

NOTE:Milking from time 1 through 10, then from time 11 through 20 counts as two different time intervals.

PROGRAM NAME: milk2

 

INPUT FORMAT

Line 1:The single integer, N
Lines 2..N+1:Two non-negative integers less than 1,000,000, respectively the starting and ending time in seconds after 0500

SAMPLE INPUT (file milk2.in)

3
300 1000
700 1200
1500 2100

OUTPUT FORMAT

A single line with two integers that represent the longest continuous time of milking and the longest idle time.

SAMPLE OUTPUT (file milk2.out)

900 300

 

这题连大模拟都算不上,就是一个小小的模拟而已

 

翻译一下:给出n个奶牛挤奶开始时间以及结束时间,并求出最长连续挤奶时间和最长不挤奶时间

最长连续挤奶时间有两种情况:

(1)就是一个奶牛的挤奶时间

(2)第二头奶牛挤奶开始时间比第一头奶牛挤奶结束时间还要早,也就是说两头奶牛的挤奶时间相交,所以就把两段时间相加

我们把一头奶牛挤奶时间抽象成一个长方形

第一种:

很明显就能看出最长连续挤奶时间是第二头,闲置时间也就是空白那里

 那么这种情况程序怎么写呢

我们用两个变量代表要求的两个时间:max_和min_

还有两个变量表示max_的时间的起始和结束时间:s和e

初始化:首先先将s定义为第一头奶牛的开始时间,将e定义为第一头奶牛的结束时间

然后对后面的奶牛依次考虑,如果这头奶牛的挤奶时间比现在的e和s的间隔长,就把e和s更新

然后求max_

因为共有两种情况,这里就先不给代码了

第二种:

这样的图形很明显可以看到最长连续挤奶时间是两个时间加在一起,间隔时间为0

两个方块相交,其实就可以抽象成这样:

 

新长方形的开始为原第一个的开始,新长方形的结束为第二个的结束 

把这两个思想一结合就成为了ac代码

/*
ID:
TASK:milk2
LANG:C++
*/
# include <iostream>
# include <cstdio>
# include <algorithm>
using namespace std;
# define int long long
# define N 5005
int n,v[N],maxn=0;
struct node{
	int st,en;
}cow[N];
bool cmp(node a,node b){
	if (a.st==b.st){
		return a.en<b.en;
	}
	return a.st<b.st;
}
signed main(){
	freopen("milk2.in","r",stdin);
	freopen("milk2.out","w",stdout);
	scanf("%lld",&n);
	for (int i=1;i<=n;i++){
		scanf("%lld %lld",&cow[i].st,&cow[i].en);
	}
	if (n==1){//特判如果只有一头奶牛
		printf("%lld 0\n",cow[1].en-cow[1].st);
		return 0;
	}
	sort(cow+1,cow+1+n,cmp);
	int s=cow[1].st,e=cow[1].en,max_=0,min_=0;
	for (int i=2;i<=n;i++){
		if(cow[i].st<=e){
            e=max(e,cow[i].en);
        }
        else{
            min_=max(min_,cow[i].st-e);
            s=cow[i].st;
			e=cow[i].en;
        }
        max_=max(max_,e-s);
	}
	printf("%lld %lld\n",max_,min_);
	fclose(stdin);
	fclose(stdout);
	return 0;
}

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

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

相关文章

Go语言入门【09】结构体

结构体 相比于Java&#xff0c;在Go语言中没有类的概念&#xff0c;但是多了结构体。结构体与Java中的类很像&#xff0c;是表示一系列同一类型或不同类型的数据构成的数据集合。 例如可以将学生抽象成一个结构体&#xff0c;每一个学生有以下属性&#xff1a; Name&#xf…

基于pytorch搭建CNN 对人像是否戴口罩进行检测分类 详细教程

项目介绍 我们将使用 CNN (卷积神经网络)和机器学习分类器创建一个检测一个人是否戴着口罩的分类器。它将检测一个人是否戴着口罩。 我们将从头开始学习,我将对每一步进行解释。我需要你对机器学习和数据科学有基本的了解。我已经在本地 Windows 10 机器上实现了它,如果你…

A-Level/IB/AP不同课程体系分数可以相互转换吗?

都知道国际学校有不同的课程体系&#xff0c;也会有不同的考试体系。比如A-Level、IB、SAT/ACT和AP&#xff1b;甚至还有国内的高考体系。所以可能有同学家长会问&#xff0c;不同体系之间的分数是否能够进行对比呢&#xff1f; 严格来讲&#xff0c;其实不好对比&#xff0c;但…

wy的leetcode刷题记录_Day59

wy的leetcode刷题记录_Day59 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间&#xff1a;2022-12-9 前言 目录wy的leetcode刷题记录_Day59声明前言1780. 判断一个数字是否可以表示成三的幂的和题目介绍思路代码收获63. 题目题目介绍思路代码收获178…

m基于RFID和DBSCAN聚类的InSAR室内三维定位算法的matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 许多室内应用需要有关物体的空间信息。示例应用程序包括项目查找&#xff0c;对象级别映射和在仓库或库中管理的大型对象。然而&#xff0c;使用802.11&#xff0c;可见光或声学的基于位置的服务…

浏览器里console是异步的

console我一直以为是同步执行的&#xff0c;直到在一本书上看到&#xff0c;才了解到console本身有异步的特性。虽然在平常开发中经常使用console&#xff0c;但是真的没有意识到它的异步性。 下面就看下异步的实例 基础类型 该类型是我们开发中经常使用的&#xff0c;正是这…

01VSCode配置Anaconda 环境和调试环境

VSCode配置Anaconda 环境 Anaconda 简介 自带Python解释器Anaconda 附带了一大批常用数据科学包150 多个科学包及其依赖项Anaconda 是在 conda&#xff08;一个包管理器和环境管理器&#xff09;上发展出来的&#xff0c;包含了虚拟环境管理工具通过虚拟环境可以使不同的Pyth…

【Python深度学习】RNN循环神经网络结构讲解及序列回归问题实战(图文解释 附源码)

需要全部代码请点赞关注收藏后评论区留言私信~~~ 循环神经网络 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是用于对序列的非线性特征进行学习的深度神经网络。循环神经网络的输入是有前后关联关系的序列。 循环神经网络可以用来解决与序列…

python数据预处理时缺失值的不同处理方式!

在使用python做数据分析的时候&#xff0c;经常需要先对数据做统一化的处理&#xff0c;缺失值的处理是经常会使用到的。 一般情况下&#xff0c;缺失值的处理要么是删除缺失数据所在的行&#xff0c;要么就是对缺失的单元格数据进行填充。 今天介绍的是使用差补法/均值/固定…

CSS -- 08. 移动WEB开发之流式布局

文章目录移动WEB开发之流式布局1 移动端基础1.1 浏览器现状1.2 手机屏幕现状1.3 移动端调试方法2 视口2.1 布局视口 layout viewport2.2 视觉视口 visual viewport2.3 理想视口 ideal viewport2.4 meta视口标签3 二倍图3.1 物理像素&物理像素比3.2 多倍图3.3 背景缩放 back…

clickhouse-部署指南(亲测超详细)

文章目录环境要求测试环境Tar方式安装clickhouse用户授权访问控制服务配置启动连接测试TABIX webUI性能测试环境要求 ClickHouse可以在任何具有x86_64&#xff0c;AArch64或PowerPC64LE CPU架构的Linux&#xff0c;FreeBSD或Mac OS X上运行 官方预构建的二进制文件通常针对x86…

prometheus+grafana对数据库mysql监控

安装 mysql docker run --name mysql-test -p MYSQL ROOT_PASSWORD123456 -p23306:3306 mysql:5.7.26启动镜像的时候 已经是把docker容器内部的3306端口 映射到本机了 直接通过navicat连上 进入mysql容器内部 docker exec -it 容器id /bin/bash, 启动 mysql. docker start d…

33.flink cdc 实时数据同步利器

什么是flink cdc? 对很多初入门的人来说是无法理解cdc到底是什么个东西。 有这样一个需求&#xff0c;比如在mysql数据库中存在很多数据&#xff0c;但是公司要把mysql中的数据同步到数据仓库(starrocks), 数据仓库你可以理解为存储了各种各样来自不同数据库中表。 数据的同步…

2-2-3-7、FutureCompletableFuture详解

Runnable 线程的任务接口&#xff0c;用于定义被执行任务方法的抽象&#xff0c;是函数式接口&#xff08;仅存在一个需要实现方法的接口&#xff09;&#xff0c;其方法为run方法通过对并发编程中java线程的了解&#xff0c;Thread调用start方法&#xff0c;最后操作系统会通过…

Confluence 调整会话超时(session timeout)

文章目录前言一、概括二、实际场景应用1.更改空闲超时2.更改记住我 cookie 的生命周期3.在用户通过身份验证后的某个时间强制注销用户总结前言 在 Confluence 中有两个会话 Cookie&#xff1a; JSESSIONID: 由 Tomcat 使用和管理。 默认情况下&#xff0c;这被视为会话 cooki…

类与对象(中)

类与对象类的6个默认成员函数构造函数概念特性析构函数概念特性拷贝构造函数概念特性赋值运算符重载运算符重载赋值运算符重载前置 后置 重载const成员函数取地址及const取地址操作符重载类的6个默认成员函数 当类中没有任何成员时&#xff0c;称作空类 但是呢&#xff0c;编译…

Docker使用(容器、镜像相关命令)

虚拟化 在计算机中&#xff0c;虚拟化&#xff08;英语&#xff1a;Virtualization&#xff09;是一种资源管理技术&#xff0c;是将计算机的各种实体资源&#xff0c;如服务器、网络、内存及存储等&#xff0c;予以抽象、转换后呈现出来&#xff0c;打破实体结构间的不可切割…

虹科方案|将以太网连接添加到Dell EMC PowerVault™ ML3 SAS库

一、Dell EMC 和 ATTO 磁带解决方案 Dell EMC 和 ATTO 提供了业界唯一的商用解决方案&#xff0c;可将高速以太网连接添加 到标准 SAS LTO 磁带驱动器。ATTO XstreamCORE ET 8200 智能网桥允许您使用 iSCSI 和 iSER 协议通过标准以太网远程连接到 SAS 磁带驱动器。当与采用最新…

花 2 个月备战字节跳动Java岗,3 轮面试拿下 60W Offer

最近收到一位刚入职字节的 Java 工程师朋友投稿——以下内容来自其亲身经历&#xff0c;某双非硕士拿到 字节 60W offer &#xff0c;感谢他的走心分享&#xff08;文末附硬货笔记&#xff09; PART1&#xff1a;个人情况简介 菜 J 一枚&#xff0c;本硕都是计算机&#xff08…

[论文阅读] SqueezeSeg V1

文章目录1. 主要思想2. 具体方法2.1 数据处理方式2.2 网络架构3. 实验支撑4. 总结启示5. 相关文献paper 原论文的链接 code: 源代码链接 paper全称&#xff1a;SqueezeSeg: Convolutional Neural Nets with Recurrent CRF for Real-Time Road-Object Segmentation from 3D LiDA…