每日一题(4)

有一只蜗牛位于二维坐标系的原点(0,0),在x轴上有n根平行于y轴的竹竿,它们底部的纵坐标为0,横坐标分别为x_1,x_2,\cdots,x_n。蜗牛想要从原点走到第n根竹竿的底部(x_n,0)。蜗牛在x轴上的移动速度是1单位每秒,在竹竿上向上爬的速度是0.7单位每秒,向下爬的速度是1.3单位每秒。此外,蜗牛可以在第i根竹竿的高度为a_i的位置(x_i,a_i)瞬间传送到第i + 1根竹竿的高度为b_{i+1}的位置(x_{i+1},b_{i+1})(0 < i < n)。
 
输入格式
 
1. 第一行是一个正整数n。
2. 第二行是n个正整数x_1,x_2,\cdots,x_n。
3. 后面n-1行,每行两个正整数a_i,b_{i+1}。
 
输出格式
 
输出一行,一个浮点数表示蜗牛到达目的地所需的最少时间(四舍五入保留两位小数)。
 
样例输入
 
plaintext
  
3
1 10 11
1 1
2 1
 
 

import java.util.Scanner;

public class SnailPath {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int[] x = new int[n];
        for (int i = 0; i < n; i++) {
            x[i] = scanner.nextInt();
        }
        int[][] ab = new int[n - 1][2];
        for (int i = 0; i < n - 1; i++) {
            ab[i][0] = scanner.nextInt();
            ab[i][1] = scanner.nextInt();
        }

        double minTime = Double.MAX_VALUE;
        for (int state = 0; state < (1 << (n - 1)); state++) {
            double time = 0;
            int pos = 0;
            int height = 0;
            for (int i = 0; i < n - 1; i++) {
                if ((state & (1 << i))!= 0) {
                    // 使用传送门
                    if (height!= 0) {
                        time += (double) height / 0.7;
                    }
                    time += 0;
                    height = ab[i][1];
                } else {
                    // 不使用传送门
                    if (height!= 0) {
                        time += (double) height / 0.7;
                    }
                    height = 0;
                    time += (double) (x[i + 1] - x[i]);
                }
            }
            if (height!= 0) {
                time += (double) height / 0.7;
            }
            time += (double) x[n - 1];
            if (time < minTime) {
                minTime = time;
            }
        }
        System.out.printf("%.2f", minTime);
    }
}


解题思路
 
1. 初始化:
- 首先读取输入的n,竹竿的横坐标数组x,以及每对传送门的高度a和b。
- 初始化一个变量 min_time 为一个较大的值,用于记录最小时间。
2. 计算时间:
- 对于每一种可能的路径,计算蜗牛从原点到达第n根竹竿底部所需的时间。
- 路径可以分为以下几种情况:
- 蜗牛一直沿着x轴爬行,不使用任何传送门。这种情况下,时间为x_n。
- 蜗牛使用部分传送门。在这种情况下,需要考虑每一种可能的传送门组合。
- 对于每一对相邻的竹竿i和i+1,计算以下两种情况的时间:
- 从x_i沿着x轴爬行到x_{i+1}的时间,即x_{i+1}-x_i。
- 从x_i处的高度a_i传送到x_{i+1}处的高度b_{i+1},然后计算在竹竿上移动的时间。在竹竿上向上爬的时间为a_i/0.7,向下爬的时间为b_{i+1}/1.3,传送时间为0(瞬间传送)。
- 选择时间最短的路径。
3. 更新最小时间:
- 对于每一种可能的路径,计算出时间后,更新 min_time 为较小的值。
4. 输出结果:
- 最后输出 min_time ,四舍五入保留两位小数。

还是不太理解o-0

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

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

相关文章

arcgisPro相接多个面要素转出为完整独立线要素

1、使用【面转线】工具&#xff0c;并取消勾选“识别和存储面邻域信息”&#xff0c;如下&#xff1a; 2、得到的线要素&#xff0c;如下&#xff1a;

51单片机仿真摇号抽奖机源程序 12864液晶显示

资料下载地址&#xff1a;51单片机仿真摇号抽奖机源程序12864液晶显示仿真程序 一、功能介绍 单片机连接12864&#xff08;st7920&#xff09;液晶显示器和1个按键接INT0&#xff0c;模拟一个抽奖机。 实现效果&#xff1a; 1、液晶初始显示“祝你好运&#xff01;”&#xff…

如何在 Ubuntu 22.04 上安装 Graylog 开源日志管理平台

简介 Graylog 的开源特性、丰富的功能、灵活性和可扩展性使其成为一个流行的日志管理平台。在本教程中&#xff0c;我将向你展示如何在 Ubuntu 22.04 上安装 Graylog&#xff0c;包括配置 Graylog 服务器软件包和访问 Graylog Web UI。 Graylog 是什么&#xff1f; Graylog …

技术发展历程:从 CORBA 到微服务

CORBA CORBA&#xff08;Common Object Request Broker Architecture&#xff09;诞生于上世纪 90 年代初期&#xff0c;由 OMG 组织提出&#xff0c;它作为一种开创性的分布式对象技术规范&#xff0c;在当时的计算机领域引起了轰动。其核心构成部分——接口定义语言&#xf…

抢单人机交互「新红利」!哪些细分赛道“多金”?

受终端用户的智能座舱体验需求驱动&#xff0c;视觉、听觉、触觉等人机交互方式加速焕新。 一方面&#xff0c;人机多模交互引领&#xff0c;车载声学进入新周期。根据高工智能汽车研究院统计数据&#xff0c;单车的车载扬声器搭载量正在快速起量。 很显然&#xff0c;作为智…

记录vue+elementUI table的组件

可展示图片&#xff0c; 可使用slot插槽添加逻辑&#xff0c; 循环表cloumn&#xff0c; 循环添加操作配置actionButtons <el-tablev-loading"loading":data"tableData"borderstyle"width: 100%"selection-change"selectChange"…

图像配准有哪些技术?

目录 图像配准技术 1.基于特征的图像配准 2.基于强度的图像配准 3.基于模型的图像配准 4.基于学习的图像配准 5.混合方法 图像配准的应用 图像配准技术入门 常见问题解答 图像配准是计算机视觉和医学成像中的一项关键技术&#xff0c;用于将多幅图像对齐到一个共同的坐…

前端学习DAY26(华为平板页面)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>平板图片</title><style> .box{text-al…

算法 双指针技巧

文章目录 双指针[leetcode167 两数之和](https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/description/)分析题解 [leetcode88 合并两个有序数组](https://leetcode.cn/problems/merge-sorted-array/description/)分析题解 [leetcode142 环形链表](https://lee…

DevOps工程技术价值流:制品库Nexus与Harbor的实战探索

制品库作为DevOps价值流中的一个关键环节&#xff0c;其重要性日益凸显。制品库&#xff0c;作为存储和管理软件开发过程中产生的各种制品&#xff08;如代码包、镜像、配置文件等&#xff09;的仓库&#xff0c;是连接开发、测试、部署等多个环节的桥梁。它不仅能够实现制品的…

R9000P键盘失灵解决办法

问题描述 突然&#xff0c;就是很突然&#xff0c;我买的R9000P 2024不到三个月&#xff0c;键盘突然都不能用了&#xff0c;是所有键盘按键都无效的那种。&#xff08;可以使用外接键盘&#xff09; 解决办法 我本科室友说的好哈&#xff0c;全坏全没坏。 &#xff08;该解…

潜在狄利克雷分配LDA 算法深度解析

引言 潜在狄利克雷分配&#xff08;Latent Dirichlet Allocation, LDA&#xff09;是一种广泛应用于文本挖掘和信息检索领域的主题模型。它能够从文档集合中自动发现隐藏的主题结构&#xff0c;为理解大规模文本数据提供了强有力的工具。本文将着重讲解 LDA 的核心理论&#x…

使用正则表达式提取PDF文件页数的实现方案

文章目录 背景介绍实现原理代码实现1. 基础函数结构2. 页数提取逻辑3. 使用示例 正则表达式解析优点与局限性优点局限性 错误处理建议性能优化建议最佳实践建议总结参考资源 背景介绍 在Web应用开发中,我们经常需要获取上传PDF文件的页数信息。虽然可以使用pdf.js等第三方库,但…

sentinel学习笔记6-限流降级(上)

本文属于sentinel学习笔记系列。网上看到吴就业老师的专栏&#xff0c;写的好值得推荐&#xff0c;我整理的有所删减&#xff0c;推荐看原文。 https://blog.csdn.net/baidu_28523317/category_10400605.html sentinel 实现限流降级、熔断降级、黑白名单限流降级、系统自适应…

全面解析 Kubernetes 流量负载均衡:iptables 与 IPVS 模式

目录 Kubernetes 中 Service 的流量负载均衡模式 1. iptables 模式 工作原理 数据路径 优点 缺点 适用场景 2. IPVS 模式 工作原理 数据路径 优点 缺点 适用场景 两种模式的对比 如何切换模式 启用 IPVS 模式 验证模式 总结 Kubernetes 中 Service 的流量负载…

每日十题八股-2024年12月19日

1.Bean注入和xml注入最终得到了相同的效果&#xff0c;它们在底层是怎样做的&#xff1f; 2.Spring给我们提供了很多扩展点&#xff0c;这些有了解吗&#xff1f; 3.MVC分层介绍一下&#xff1f; 4.了解SpringMVC的处理流程吗&#xff1f; 5.Handlermapping 和 handleradapter有…

蓝桥杯嵌入式备赛教程(1、led,2、lcd,3、key)

一、工程模版创建流程 第一步 创建新项目 第二步 选择型号和管脚封装 第三步 RCC使能 外部时钟&#xff0c;高速外部时钟 第四步晶振时钟配置 由数据手册7.1可知外部晶振频率为24MHz 最后一项设置为80 按下回车他会自动配置时钟 第五步&#xff0c;如果不勾选可能程序只会…

详细解读sedex验厂

SEDEX验厂&#xff0c;即供货商商业道德信息交流认证&#xff08;Supplier Ethical Data Exchange&#xff09;&#xff0c;是一种表明企业遵守商业道德的认证。以下是对SEDEX验厂的详细解读&#xff1a; 一、SEDEX验厂概述 SEDEX是一家总部位于英国伦敦的非营利组织&#xf…

2.4 设备管理

文章目录 设备管理概述设备管理技术磁盘调度 设备管理概述 设备管理是操作系统中最繁杂、与硬件关系紧密的部分。 设备可以按照数据组织、资源分配、数据传输率分类。 数据组织&#xff1a;分为块设备&#xff08;ex. 磁盘&#xff09;、字符设备(ex. 打印机)。资源分配&#…

网络安全渗透有什么常见的漏洞吗?

弱口令与密码安全问题 THINKMO 01 暴力破解登录&#xff08;Weak Password Attack&#xff09; 在某次渗透测试中&#xff0c;测试人员发现一个网站的后台管理系统使用了非常简单的密码 admin123&#xff0c;而且用户名也是常见的 admin。那么攻击者就可以通过暴力破解工具&…