蓝桥杯算法心得——小郑躲太阳(思维推导)

大家好,我是晴天学长,一道与平时的题型截然不同的题型,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪


1) .小郑躲太阳

在这里插入图片描述

问题描述
小郑一觉醒来发现起晚啦!现在需要从家里飞速前往公司,对他来说,路线是唯一的。
可以把小郑的上班路径看作是一条直线, 其中有一些位置能被太阳直射,而有一些被遮住了。
小郑步行每秒的移动速度是1海秒,步行不花费体力。
路径长度为s,有n个不相交的整数区间l到r,示这部分[I,r之间被遮蔽了。
小郑-开始有c的体力,他可以耗费每秒1点体力慢跑一会儿, 这样,他就可以在这段时间内获得2米海秒的移动速度。
小郑也可以耗费每秒3点体力)冲刺一会儿, 这样,他就可以在这段时间内获得3米海秒的移动速度。
注意:时间是连续的,例如,小郑可以花费2点体力冲刺2/3秒。
小郑可以在任意时间决定他的移动方式,但他希望被晒到太阳的时间最短。
输入格式
第一行输入三个整数s,n,c,代表路径的总长度,被遮蔽区间的个数和小郑的初始体力。
接下来n行,每行两个整数l,r表示[I,r]这段区间被遮蔽了。
输出格式
输出小郑最少要被太阳晒到的时间(四舍五入保留6位小数)。
样例输入1
1006 10
样例输出1
90.90000
样例输入2
100 2 20
10 26
60 168


2) .算法思路

小郑躲太阳

遮蔽区可以删去
1.有全程慢跑的体力,不够只能不够了
2.慢跑用不完能量的时候,可以冲刺一波


3).算法步骤


1.读取输入的行,并解析为长整型变量s、n和c,分别表示总距离、阴影区域的数量和冲刺能力。

2.初始化变量res为0,用于记录阴影区域的总长度。

3.使用循环读取每个阴影区域的起始位置和结束位置,并将其长度累加到res中。

4.将总距离s减去阴影区域的总长度,得到剩余未被阴影覆盖的距离s。

5.检查特殊情况,如果冲刺能力的两倍恰好等于剩余距离s,说明可以全程慢跑,输出结果为剩余距离s除以2.0。

6.检查特殊情况,如果冲刺能力大于等于剩余距离s,说明可以全程步行,输出结果为剩余距离s除以3.0。

7.如果冲刺能力的两倍大于剩余距离s,表示有多余的体力。

8.计算第一次冲刺的时间t1,即冲刺能力的两倍减去剩余距离s。

9.计算第一次冲刺的距离s1,即第一次冲刺的时间t1除以3.0乘以3(每分钟跑3米)。

10.计算第二次冲刺的时间t2,即剩余距离s减去第一次冲刺的距离s1除以2.0。

11.计算总时间t,即第一次冲刺的时间t1加上第二次冲刺的时间t2。

12.输出结果为总时间t,保留小数点后六位。

13.刷新输出流。


4). 代码实例

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Scanner;public class Main {static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));static PrintWriter out = new PrintWriter(new PrintWriter(System.out));static String[] lines;public static void main(String[] args) throws IOException {lines = in.readLine().split(" ");long s = Long.parseLong(lines[0]);long n = Long.parseLong(lines[1]);long c = Long.parseLong(lines[2]);//阴影区域long res = 0;for (int i = 0; i < n; i++) {lines = in.readLine().split(" ");long l = Long.parseLong(lines[0]);long r = Long.parseLong(lines[1]);res += r-l;}s-=res;//看是否能全程慢跑(有刚好的情况)if (c*2==s){out.println(String.format("%.6f",s/2.0));}else if(c>=s){out.println(String.format("%.6f",s/3.0));}//有多余的体力else if (c*2>s){//冲刺double t1 = (c*2-s);double s1 = (t1/3)*3;double t2 = (s-s1)/2.0;double t = t1+t2;out.println(String.format("%.6f",t));}//不能全程跑else {double t1 = c*2;double t2 = s-t1;double t = c+t2;out.println(String.format("%.6f",t));}out.flush();}
}

4).总结

  • 思维推导题,情况分类。

试题链接:

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

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

相关文章

B026-MySQL基础

目录 数据库概述数据库概念数据库的由来和发展常见的关系型数据库服务器&#xff08;DBMS&#xff09;SQL概述表的概念 数据库的安装与配置安装启动和连接MySQL启动MySQL服务连接MySQL MySQL图形化管理软件-Navicat数据库安装失败解决方案 MySQL数据库操作数据库操作和存储引擎…

8.ROS的TF坐标变换(二):动态坐标变换、多坐标变换代码讲解(以LIO-SAM为例)

目录 1 ROS的动态坐标变换及代码解释 1.1 什么是ROS的动态坐标变换 1.2 CMakeLists.txt、package.xml基础配置 1.3 发布方代码实现 1.4 接收方代码实现 2 ROS的多坐标变换及代码解释 2.1 什么是ROS的多坐标变换 2.2 发布方代码实现 2.3 接收方代码实现 3 L…

图解系列--功能追加协议,构建Web内容

功能追加协议 1.消除 HTTP 瓶颈的 SPDY 1.1.HTTP 的瓶颈 使用 HTTP 协议探知服务器上是否有内容更新&#xff0c;就必须频繁地从客户端到服务器端进行确认。如果服务器上没有内容更新&#xff0c;那么就会产生徒劳的通信。 若想在现有 Web 实现所需的功能&#xff0c;以下这些…

线程与多线程编程

1. 线程 1.1 概念 线程又可以称为轻量级进程 &#xff0c;在进程的基础上做出了改进。 一个进程在刚刚启动时&#xff0c;做的第一件事就是申请内存和资源&#xff0c;进程需要把依赖的代码和数据&#xff0c;从磁盘加载到内存中这件事是比较耗费时间的&#xff0c;有的业务…

matlab simulink 永磁同步电机PI调速控制

1、内容简介 略 27-可以交流、咨询、答疑 2、内容说明 永磁同步电机调速控制 永磁同步电机PI调速控制 永磁同步电机PI调速控制、PMSM 3、仿真分析 略 4、参考论文 略 链接&#xff1a;https://pan.baidu.com/s/1AAJ_SlHseYpa5HAwMJlk1w 提取码&#xff1a;rvol 路…

科研者的福利!一个集论文、代码、数据集为一体的网站

Papers with Code 是一个总结了机器学习论文及其代码实现的网站。大多数论文都是有GitHub代码的。这个网站最好的地方就是对机器学习做了任务分类&#xff0c;检索对应的模型非常方便。早在18年Paper With Code创立时就轰动一时&#xff0c;仅创立一年就被Facebook收购。 Pape…

Spring AOP记录接口访问日志

Spring AOP记录接口访问日志 介绍应用范围组成通知&#xff08;Advice&#xff09;连接点&#xff08;JoinPoint&#xff09;切点&#xff08;Pointcut&#xff09;切面&#xff08;Aspect&#xff09;引入&#xff08;Introduction&#xff09;织入&#xff08;Weaving&#x…

Linux--初识和基本的指令(3)

目录 1.前言 1.指令 1.1 cat指令 1.2 echo指令 1.3 more 指令 1.4 less指令 1.5 什么时候使用less和more 1.6 head指令 1.7 tail指令 1.8 wc指令 1.9 与时间相关的指令 1.9.1 date指令 1.9.2 cal指令 1.10 16.find指令&#xff1a;&#xff08;灰常重要&#x…

千梦网创:熟悉抖音内容创作的切入方式

因为身边抖音网红的资源比较近&#xff0c;所以虽然一直没有露脸去做短视频运营&#xff0c;但是最近也是跟随朋友一起开始了短视频的学习之路。 在参观过一些“超级直播间”之后&#xff0c;我们敲定了未来的两个盈利方向&#xff0c;这两个方向可以将我们身边的资源极致利用…

MyBatis-逆向工程

1.简单生成 1.添加依赖和插件 <dependencies><!-- MyBatis核心依赖包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><!-- MySQL驱动…

金蝶Apusic应用服务器deployApp接口任意文件上传漏洞复现 [附POC]

文章目录 金蝶Apusic应用服务器deployApp接口任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 金蝶Apusic应用服务器deployApp接口任意文件上传漏洞复现 [附POC] 0x01 前言 免责声明…

【前端】-【electron】

文章目录 介绍electron工作流程环境搭建 electron生命周期&#xff08;app的生命周期&#xff09;窗口尺寸窗口标题自定义窗口的实现阻止窗口关闭父子及模态窗口自定义菜单 介绍 electron技术架构&#xff1a;chromium、node.js、native.apis electron工作流程 桌面应用就是…

常见的攻击防护

只做模拟机器使用&#xff0c;不使用真实机器 目录 一、 DHCP饿死和防护应对措施.................................. 1 1&#xff0c; 实验拓扑&#xff1a;...................................................... 2 2&#xff0c; 实验配置............................…

Web自动化测试怎么做?Web自动化测试的详细流程和步骤

1.什么是web自动化测试 自动化&#xff08;Automation&#xff09;是指机器设备、系统或过程&#xff08;生产、管理过程&#xff09;在没有人或较少人的直接参与下&#xff0c;按照人的要求&#xff0c;经过自动检测、信息处理、分析判断、操纵控制&#xff0c;实现预期的目标…

opencv阈值处理

阈值处理 二值化 自适应阈值 OTSU二值化

latex表格中内容过多如何换行【已解决】

最近在写论文的时候放了一个表格&#xff0c;但是表格看起来特别大&#xff0c;因为想让某些内容多的单元格完成换行操作 首先在main.tex引入makecell包 \usepackage{makecell} 然后回到表格找到你想换行的单元格&#xff0c;把\makecell{}加进去&#xff0c;然后在需要换行的…

基于物联网技术的基站能耗监控解决方案-安科瑞 蒋静

摘 要&#xff1a;随着社会的不断发展和进步&#xff0c;人们对通信基站的需求增加。随着通信基站大规模的建设和使用&#xff0c;基站内部的电源情况、供电安全保障或节能减排等问题&#xff0c;仍然是基站建设的着重问题。不管是建设者还是使用者&#xff0c;都应当注重用电安…

[socket 弹 shell] msg_box3

前言 题目比较简单&#xff0c;没开 Canary 和 NX. Arch: amd64-64-littleRELRO: Full RELROStack: Canary foundNX: NX disabledPIE: PIE enabledRWX: Has RWX segments 漏洞利用与分析&#xff1a; 白给的函数调用&#xff0c;其中 ptr 10 是用…

Long-Context下LLM模型架构全面介绍

深度学习自然语言处理 原创作者&#xff1a;cola 随着ChatGPT的快速发展&#xff0c;基于Transformer的大型语言模型(LLM)为人工通用智能(AGI)铺平了一条革命性的道路&#xff0c;并已应用于知识库、人机界面和动态代理等不同领域。然而&#xff0c;存在一个普遍的限制:当前许多…

模拟业务流程+构造各种测试数据,一文带你测试效率提升80%

我们做软件测试的时候&#xff0c;经常需要页面有点数据&#xff0c;特别是涉及到一些数据统计的测试用例的时候&#xff0c;更是需要源源不断的测试数据让前端页面生成对应的报表测试统计的数据正确性。 如果我们通过手工的方式操作业务流程来实现数据的构造的话&#xff0c;少…