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

news2024/12/28 19:17:52

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


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.coloradmin.cn/o/1277413.html

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

相关文章

服装行业中小企业零售数字化转型的工作目标和主要实施路径|徐礼昭

目标1&#xff1a;实现“人、货、场”的在线化和经营数字化 实施路径&#xff1a;中小企业可以选择商派的微信小程序商城系统&#xff0c;结合导购助手小程序&#xff0c;实现业务在线化&#xff0c;导购在线化&#xff0c;通过微信公众号、企微社群和视频号&#xff0c;开展私…

synchronized和volatile的区别是什么?

synchronized和volatile是Java中的两个关键词&#xff0c;分别用于实现线程同步和线程间的可见性。 synchronized用于实现线程之间的互斥同步&#xff0c;即同一时刻只能有一个线程访问被synchronized修饰的代码块或方法&#xff0c;其他线程需要等待。synchronized确保了线程…

在Android上搭建一个NDK项目

首先New Project&#xff0c;选择Native C&#xff0c;点击Next。 填入项目名称和包名&#xff0c;点击Next。 这里我们选择Cmake默认的C版本。 创建好的项目目录&#xff0c;里面比我们正常的Android项目多了一个cpp目录 打开MainActivity。里面定义了一个jni方法stringFromJN…

SOCKET、TCP、HTTP之间的区别与联系

SOCKET、TCP、HTTP之间的区别与联系 一、 Socket 1、什么是socket2、为什么需要socket3、建立socket连接 二、HTTP(基于TCP) 1、HTTP的概念2、HTTP连接的特点 连接请求&#xff1a;一次连接连接请求&#xff1a;短连接(socket是长连接) 三、TCP/IP协议簇 四、HTTP、Socket…

Linux中shell的运行原理

在Linux中&#xff0c;每次输入命令时&#xff0c;前面都会出现一串字母&#xff0c;我们称之为命令行提示符 实际上&#xff0c;命令行提示符是一种外壳程序 外壳程序的概念&#xff1a; 前面我们提到过&#xff0c;在Linux中&#xff0c;一切皆文件&#xff0c;所谓的命令就…

linux设置权限_setfacl_getfacl

3.2 设置权限ACL&#xff08;access control list&#xff09; 假设&#xff1a;/data所有者与所属组均为root&#xff0c;在不改变所有者的前提下&#xff0c;要求用户tom对该目录有完全访问权限&#xff08;rwx&#xff09;。只能考虑&#xff1a; 方法一&#xff1a;给/dat…

Spring AOP记录接口访问日志

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

003、应用程序框架-UIAbility

之——UIAbility 目录 之——UIAbility 杂谈 正文 1.UIAbility 2.基本使用 2.1 创建Ability工程 2.2 添加基础功能 2.3 新建页面 2.4 页面间的跳转 3.生命周期 总结 杂谈 UIAbility&#xff0c;其中的页面创建、页面间的跳转、数据传递、生命周期。 正文 1.UIAbil…

BUUCTF-WEB-刷题记录(2)

[网鼎杯 2018]Fakebook 注册一个账户&#xff0c;进去之后查看源代码&#xff0c;感觉存在注入点 是数字型注入&#xff0c;payload&#xff1a; 1%20and(false) 1%20and(true)判断列数 1 order by 5改为4的时候则页面正常 判断显示位&#xff0c;可以看见第二列存在数据回…

C语言每日一题(43)旋转链表

力扣 61 旋转链表 题目描述 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3]示例 2&#xff1a; 输入&#xff1a;head [0,1,2], …

Matlab 自适应选择搜索半径

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 通常我们计算某一点邻域的信息使用的都是固定搜索半径,然而,这取决于局部特征规模以及不包括代表性的几何信息。但如果存在三维噪声,固定的半径对最终的结果往往有着很大的影响。因此,要找到一个唯一的半径在所…

【网络安全技术】实体认证技术Kerberos

一、什么是Kerberos Kerberos解决的是客户端与服务器通信场景中&#xff0c;确保客户端服务器双方的身份可信&#xff0c;并提供对称密钥的分发来加密传输。是一个应用层的协议。 二、一个简单的模型 1.看这个基础的模型&#xff0c;客户端要和服务器通信&#xff0c;他先将自…

(使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))

使用vite搭建vue3项目&#xff08;vite vue3 vue router pinia element plus&#xff09; 初始化项目安装依赖&#xff0c;运行项目初始配置 初始化项目 1.需要在创建项目的位置cmd目录下执行 2. npm init vitelatest 回车 npm init vitelatest3.填上自己的项目名称 回车…

Rocket-核心编程模型

RocketMQ的消息模型 深入理解RocketMQ的消息模型 RocketMQ客户端基本流程 RocketMQ基于Maven提供了客户端的核心依赖&#xff1a; <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version&…

Overflow Aware Quantization

Overflow Aware Quantization Framework N o _o o​是 amount of arithmetic overflow 辅助信息 作者未提供代码

【数值计算方法(黄明游)】矩阵特征值与特征向量的计算(二):Jacobi 过关法(Jacobi 旋转法的改进)【理论到程序】

文章目录 一、Jacobi 旋转法1. 基本思想2. 注意事项 二、Jacobi 过关法1. 基本思想2. 注意事项 三、Python实现迭代过程&#xff08;调试&#xff09; 矩阵的特征值&#xff08;eigenvalue&#xff09;和特征向量&#xff08;eigenvector&#xff09;在很多应用中都具有重要的数…

计算机体系结构补充篇----静态超标量流水线及循环展开(一)

本文仅供学习&#xff0c;不作任何商业用途&#xff0c;严禁转载。部分资料取自----计算机系统结构教程(第二版)张晨曦等。部分资料来自----国科大计算机体系结构课程PPT–张科、刘珂、高婉玲 计算机体系结构----静态超标量流水线及循环展开&#xff08;一&#xff09; 摘要静…

西南科技大学(数据结构A)期末自测练习三

一、填空题&#xff08;每空1分&#xff0c;共10分&#xff09; 1、为解决计算机主机与打印机之间速度不匹配的问题&#xff0c;通常设置一个打印数据缓冲区。主机将要输出的数据依次写入缓冲区&#xff0c;打印机则依次从缓冲区中取出数据&#xff0c;则该换缓冲区的逻辑结构…

非应届生简历模板(13篇)

无论您是职场新人还是转行求职者&#xff0c;一份出色的简历都是获得心仪岗位的关键。本文为大家精选了13篇专业的非应届生简历模板&#xff0c;无论您的经验如何&#xff0c;都可以灵活参考借鉴&#xff0c;提升自己的简历质量。让简历脱颖而出&#xff0c;轻松斩获心仪职位&a…

图计算和图挖掘的概述

文章目录 IntroductionSubgraph Enumeration&#xff08;子图枚举&#xff09;Single CPUDistributed TechniqueA Practical Guide Cohesive Subgraphs&#xff08;内聚子图&#xff09;CliqueFull improvement&#xff01;&#xff01;&#xff01;↓ Network Resilience&…