news 2026/9/15 7:51:32

(新卷,200分)- 运输时间(Java JS Python C)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(新卷,200分)- 运输时间(Java JS Python C)

(新卷,200分)- 运输时间(Java & JS & Python & C)

题目描述

M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。

速度快的车追上前车后,只能以前车的速度继续行驶,求最后一辆车到达目的地花费的时间。

注:每辆车固定间隔 1 小时出发,比如第一辆车 0 时出发,第二辆车 1 时出发,依次类推

输入描述

第一行两个数字:M N,分别代表车辆数和到终点的距离,以空格分隔

接下来 M 行,每行一个数字 S,代表每辆车的速度。0 < S < 30

输出描述

最后一辆车到达目的地花费的时间

用例
输入2 11
3
2
输出5.5
说明2辆车,距离11,0时出发的车速度快,1时出发的车,到达目的地花费5.5
题目解析

需要注意的关键点在于:在单行道上,快速车辆可以与前车并行行驶。因此题目中提到的"不能超车的单行道"实际上是指单向车道,可能包含多条并行车道。

解题思路如下:

  1. 后车行驶规则:

    • 若后车正常行驶时比前车更快到达终点,将被前车阻挡,此时后车到达时间与前车相同
    • 若后车正常行驶时比前车更慢到达终点,则不受前车影响,按自身速度到达
  2. 时间计算:

    • 所需时间为到达时刻减去出发时刻
  3. 输出格式:

    • 结果可能为小数,默认保留3位有效数字(四舍五入),实际考试时需根据题目要求调整
JS算法源码
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void (async function () { const [m, n] = (await readline()).split(" ").map(Number); // 记录前车到达终点的时刻,本题后车不可能比前车更早到达,因此如果后车到达时刻 < 前车到达时刻arrived,则后车也是按照前车arrived时刻达到 let arrived = 0; for (let i = 0; i < m; i++) { // 当前车的速度 const speed = parseInt(await readline()); // 当前车到达终点的时刻 // * 当前车如果比前车更早到达,则被前车阻碍,按前车到达时间算 // * 当前车如果比前车更晚到达,则不被前车阻碍,按后车到达时间算 arrived = Math.max(arrived, n / speed + i); // n*1.0/speed是行驶花费时间; i是第i辆车的出发时间 } // 到达时刻 - 出发时刻 = 路上花费的时间 const cost = arrived - (m - 1); console.log(Number(cost.toFixed(3))); // 如果有小数位则至多保留3位 })();
Java算法源码
import java.text.NumberFormat; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); // 记录前车到达终点的时刻,本题后车不可能比前车更早到达,因此如果后车到达时刻 < 前车到达时刻arrived,则后车也是按照前车arrived时刻达到 double arrived = 0; for (int i = 0; i < m; i++) { // 当前车的速度 double speed = sc.nextDouble(); // 当前车到达终点的时刻 // * 当前车如果比前车更早到达,则被前车阻碍,按前车到达时间算 // * 当前车如果比前车更晚到达,则不被前车阻碍,按后车到达时间算 arrived = Math.max(arrived, n / speed + i); // n*1.0/speed是行驶花费时间; i是第i辆车的出发时间 } // 到达时刻 - 出发时刻 = 路上花费的时间 double cost = arrived - (m - 1); // 格式化打印小数 NumberFormat nf = NumberFormat.getInstance(); nf.setMinimumFractionDigits(0); // 没有小数位则不保留 nf.setMaximumFractionDigits(3); // 有小数位则至多保留3位 System.out.println(nf.format(cost)); } }
Python算法源码
# 输入获取 m, n = map(int, input().split()) # 记录前车到达终点的时刻,本题后车不可能比前车更早到达,因此如果后车到达时刻 < 前车到达时刻arrived,则后车也是按照前车arrived时刻达到 arrived = 0 for i in range(m): # 当前车的速度 speed = int(input()) # 当前车到达终点的时刻 # * 当前车如果比前车更早到达,则被前车阻碍,按前车到达时间算 # * 当前车如果比前车更晚到达,则不被前车阻碍,按后车到达时间算 arrived = max(arrived, n / speed + i) # n*1.0/speed是行驶花费时间; i是第i辆车的出发时间 # 到达时刻 - 出发时刻 = 路上花费的时间 cost = arrived - (m - 1) print("{:g}".format(round(cost, 3))) # 如果有小数位则至多保留3位,:g 用于去除无效小数位
C算法源码
#include <stdio.h> #include <math.h> int main() { int m, n; scanf("%d %d", &m, &n); // 记录前车到达终点的时刻,本题后车不可能比前车更早到达,因此如果后车到达时刻 < 前车到达时刻arrived,则后车也是按照前车arrived时刻达到 double arrived = 0; for(int i=0; i<m; i++) { // 当前车的速度 double speed; scanf("%lf", &speed); // 当前车到达终点的时刻 // * 当前车如果比前车更早到达,则被前车阻碍,按前车到达时间算 // * 当前车如果比前车更晚到达,则不被前车阻碍,按后车到达时间算 arrived = fmax(arrived, n / speed + i); // n*1.0/speed是行驶花费时间; i是第i辆车的出发时间 } // 到达时刻 - 出发时刻 = 路上花费的时间 double cost = arrived - (m - 1); // 至多保留3个小数位 char res[100]; sprintf(res, "%.3f", cost); // %g 格式 不会打印无效小数位 printf("%g", atof(res)); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 9:53:28

使用Scikit-learn进行机器学习模型评估

SQLAlchemy是Python中最流行的ORM&#xff08;对象关系映射&#xff09;框架之一&#xff0c;它提供了高效且灵活的数据库操作方式。本文将介绍如何使用SQLAlchemy ORM进行数据库操作。目录安装SQLAlchemy核心概念连接数据库定义数据模型创建数据库表基本CRUD操作查询数据关系操…

作者头像 李华
网站建设 2026/9/12 1:20:22

开题报告基于PHP的校园OA系统

目录 项目背景系统功能模块技术选型创新点预期成果 项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 项目背景 校园OA系统旨在解决传统校园办公中信息传递效率低、流程繁琐的问题。通过PHP开发&#xff0c…

作者头像 李华
网站建设 2026/9/3 21:40:58

2026广州GEO服务商甄选指南:算法精准度与转化效能测评

2026年&#xff0c;生成式AI技术进入商业化突破临界点&#xff0c;用户信息检索行为从传统搜索引擎全面转向生成式应答平台&#xff0c;AI语义建模、跨平台落地成为生成式引擎优化&#xff08;GEO&#xff09;的核心技术内核&#xff0c;向量数据库架构、检索增强生成&#xff…

作者头像 李华
网站建设 2026/9/3 8:02:29

HBase与DataX:异构数据源同步工具

HBase与DataX:异构数据源同步工具 关键词:HBase,DataX,异构数据源同步,数据迁移,大数据 摘要:本文深入探讨了HBase与DataX在异构数据源同步中的应用。首先介绍了HBase和DataX的背景知识,包括它们的目的、适用读者以及文档结构等。接着详细阐述了HBase和DataX的核心概念…

作者头像 李华