华为OD机试 - 士兵过河(Java)

题目描述

一支N个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。
敌军在T的时长后到达河面,没到过对岸的士兵都会被消灭。
现在军队只找到了1只小船,这船最多能同时坐上2个士兵。

  1. 当1个士兵划船过河,用时为 a[i];0 <= i < N
  2. 当2个士兵坐船同时划船过河时,用时为max(a[j],a[i])两士兵中用时最长的。
  3. 当2个士兵坐船1个士兵划船时,用时为 a[i]*10;a[i]为划船士兵用时。
  4. 如果士兵下河游泳,则会被湍急水流直接带走,算作死亡。

请帮忙给出一种解决方案,保证存活的士兵最多,且过河用时最短。

输入描述

第一行:N 表示士兵数(0<N<1,000,000)
第二行:T 表示敌军到达时长(0 < T < 100,000,000)
第三行:a[0] a[1] … a[i]… a[N- 1]
a[i]表示每个士兵的过河时长。
(10 < a[i]< 100; 0<= i< N)

输出描述

第一行:”最多存活士兵数” “最短用时”

备注

1)两个士兵的同时划船时,如果划速不同则会导致船原地转圈圈;所以为保持两个士兵划速相同,则需要向划的慢的士兵看齐。
2)两个士兵坐船时,重量增加吃水加深,水的阻力增大;同样的力量划船速度会变慢;
3)由于河水湍急大量的力用来抵消水流的阻力,所以2)中过河用时不是a[i

【华为机考真题】士兵过河 Ⅱ,JAVA 题解 | 华为OD机试考生(新抽中题) 3)由于河水湍急大量的力用来抵消水流的阻力,所以 2)中过河时间不是 a[i] _ 2,而是 a[i] _ 10。同样的力量划船速度会变慢。第十一步:a[1] a[2] 过河用时: 13。第一步:a[0] a[1] 过河用时: 13。第三步:a[0] a[2] 过河用时: 15。第一步:a[1] a[2] 过河用时: 13。第三步:a[0] a[4] 过河用时: 50。第五步:a[1] a[2] 过河用时: 13。第七步:a[1] a[3] 过河用时: 15。第一步:a[1] a[2] 过河用时: 13。 阅读详情

相关推荐

士兵过河 - 华为OD机试真题(Java 题解)

一支N个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。敌军在T的时长后到达河面,没到过对岸的士兵都会被消灭。现在军队只找到了1只小船,这船最多能同时坐上2个士兵。 1. 当1个士兵划船过河,用时为 a[i];0 <= i < N 2. 当2个士兵坐船同时划船过河时,用时为 max(a[j],a[i]) 两士兵中用时最长的。 3. 当2个士兵坐船1个士兵划船时,用时为 a[i]*10;a[i]为划船士兵用时。 4. 如果士兵下河游泳,则会被湍急水流直接带走,算作死亡。 请帮忙给出一种解决方案,保证存活

学习,你不是一个人在战斗 ~ 961302305(QQ,微信) 950

【华为OD机试真题】96、士兵过河 | 机试真题+思路参考+代码解析(C++、Java、Py)

题目描述 >一支N个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。 敌军在T的时长后到达河面,没过到对岸的士兵都会被消灭。 现在军队只找到了只小船,这船最多能同时坐上2个士兵。   1、当1个兵划船过河,时为a[i]; 0

KJ.JK 2132

华为OD机试Java - 士兵过河

一支N个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。 敌军在T的时长后到达河面,没到过对岸的士兵都会被消灭。 现在军队只找到了1只小船,这船最多能同时坐上2个士兵。

steven_my的博客 105

【华为OD机试真题 Java语言】96、士兵过河 | 机试真题+思路参考+代码解析

一支N个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。 敌军在T的时长后到达河面,没过到对岸的士兵都会被消灭。 现在军队只找到了只小船,这船最多能同时坐上2个士兵。   1、当1个兵划船过河,时为a[i]; 0

KJ.JK 1万+

【华为OD机试真题】A卷-士兵过河(JAVA)

【华为OD机试真题】A卷-士兵过河(JAVA):一支N个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。敌军在T的时长后到达河面,没到过对岸的士兵都会被消灭。现在军队只找到了1只小船,这船最多能同时坐上2个士兵。1)当1个士兵划船过河,用时为 a[i];0

u014481728的博客 827

【华为OD机试真题】96、士兵过河 | 机试真题+思路参考+代码解析(C语言、C++、Java、Py、JS)

一支N个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。 敌军在T的时长后到达河面,没过到对岸的士兵都会被消灭。 现在军队只找到了只小船,这船最多能同时坐上2个士兵。   1、当1个兵划船过河,时为a[i]; 0

正在更新最新华为OD机试2025B卷,提供OJ在线刷题 813

【华为OD机试真题 Java】士兵过河

一支N个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。 敌军在T的时长后到达河面,没到过对岸的士兵都会被消灭。 现在军队只找到了1只小船,这船最多能同时坐上2个士兵。 当1个士兵划船过河,用时为 a[i];0

A_D_I_D_A_S的博客 174

【华为OD机试真题 2025A卷】96、士兵过河 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

【华为OD机试真题 2025A卷】96、士兵过河 | 机试真题+思路参考+代码解析(C++、Java、Py) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2025e卷,od机试,2025E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2025华为od,如何备战华为od,华为od算法,

正在更新最新华为OD机试2025B卷,提供OJ在线刷题 228

【华为OD机试】士兵过河(python, java, c++, js)

一支N个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。 敌军在T的时长后到达河面,没到过对岸的士兵都会被消灭。 现在军队只找到了1只小船,这船最多能同时坐上2个士兵。 当1个士兵划船过河,用时为 a[i];0

A_D_I_D_A_S的博客 152

华为OD机试真题精讲:士兵过河(Python/Java/C++多语言实现)

摘要:本文讲解华为OD机试高频题“士兵过河”的解题思路与多语言实现。题目要求计算n名士兵过河的最短时间,船最多载2人,过河时间由较慢者决定,且需1人划回。核心考点为贪心算法与排序预处理。解题步骤:1)排序士兵时间;2)循环处理最慢2人,选择最优策略(策略A:最快+次快配合;策略B:最快单独配合);3)处理剩余士兵。提供Python(高效输入处理)、Java(类型安全)实现,均通过排序+贪心策略在O(n log n)时间内求解,覆盖边界条件如1人或2人情况。示例验证如输入[1,2,5,10]输出17,体现最优

bkspiderx的博客 169

华为OD机试 - 士兵过河(Java)

对于动态规划解法,由于是从0人过河递推到N人过河,因此不需要二分尝试过河人数,而是可以直接基于dp[i]来实时比较T,如果超过了T,则说明只能过河 i 人,耗时dp[i-1]如果a[y] > a[x] * 10,我们应该选择a[x] * 10,即让较快的士兵单独划船过河,这样耗时更短。即在0~N中尝试找到成功过河的人数,其中0指的是成功过河的人数为0个,N指的是成功过河的人数为N个。假设x士兵划船用时为a[x],y士兵划船用时为a[y],a[x] < a[y]第三行:a[0] a[1] …

qq_34143141的博客 160

2023华为OD机试真题Java实现【士兵过河/动态规划】

2)当2个士兵坐船同时划船过河时,用时为max(a[j],a[i])两士兵中用时最长的。3)当2个士兵坐船1个士兵划船时,用时为 a[i]*10;3)由于河水湍急大量的力用来抵消水流的阻力,所以2)中过河用时不是a[i] *2,第十一步:a[1] a[2] 过河用时:13。第一步:a[0] a[1] 过河用时:13。第三步:a[0] a[2] 过河用时:15。第一步:a[1] a[2] 过河用时:13。第五步:a[1] a[2] 过河用时:13。第九步:a[1] a[3] 过河用时:15。

wtswts1232的博客 129

华为OD机试 - 士兵过河(C++ Java JavaScript Python )

一支N个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河。 敌军在T的时长后到达河面,没到过对岸的士兵都会被消灭。 现在军队只找到了1只小船,这船最多能同时坐上2个士兵。

算法大师! 3458

华为OD机试 2025B卷 - 士兵过河 (C++ & Python & JAVA & JS & GO)

华为OD机试 2025B卷 士兵过河 提供Java、C++、Python、Go、JavaScript源码实现

qq_45776114的博客 1797

ICCompiler II学习笔记(一)ICC II使用全流程 overview

学习笔记同步发布在我的个人网站上,欢迎来访查看。 个人学识有限,理解可能有误,仅供参考。 文章目录一、前言二、 ICC II 简介和 GUI2.1 Blocks 和 Design Libraries2.2 Objects2.3 Application Options三、Design Setup四、APR flow五、 课程主题:如何用 ICC II来实现最好的PPA 一、前言 现在的芯片都在追求一个极致的PPA 芯片的生成可以分为以下 5大步骤: Front-end Design:前端设计,最终产生

一名FPGA芯片设计爱好者的技术博客 2万+

避开PSRR仿真三大坑:用Cadence psspxf分析分频器时,这些设置错了白忙活

本文深入探讨了使用Cadence psspxf工具进行分频器PSRR仿真时常见的三大技术陷阱,包括扰动信号参数设置、收敛性优化和后处理信号提取。通过详细的参数推荐和实战技巧,帮助工程师避免仿真误差,提升PSRR分析效率与准确性,特别适用于16分频器等数字-模拟混合电路设计。

weixin_29258297的博客 301

CFturbo 2024保姆级教程:从流量扬程到三维叶轮,手把手搞定离心泵水力设计

本文提供CFturbo 2024离心泵水力设计的全流程实战指南,从流量扬程参数输入到三维叶轮模型导出,详细解析设计步骤与优化技巧。涵盖叶轮尺寸确定、子午面型线设计、叶片角度调整等关键环节,帮助工程师高效完成CAE辅助的离心泵水力设计,提升设计质量与效率。

weixin_42569329的博客 935

保姆级教程:用STM32H743+TJA1042T玩转FDCAN,CubeMX配置1M/5M双速率通信(附完整代码)

本文提供STM32H743与TJA1042T实现FDCAN双速率通信的保姆级教程,详细讲解CubeMX配置1M/5M双速率通信的全过程,包括硬件连接、时钟树配置、过滤器设置及中断管理,并附完整代码示例,助力开发者快速掌握FDCAN高速通信技术。

weixin_30698297的博客 473

WorkBuddy CAD 审图救命课:约束、单位、尺寸链一次查清,打样前拦住返工

最危险的 CAD 文件不是打不开,而是看起来完整却混用了毫米与英寸、草图欠约束、关键尺寸没有来源。审图任务必须先列规则,再输出问题位置。 本课不会用“AI 一键完成”制造错觉,而是把 WorkBuddy、FreeCAD 0.21.2、OpenCascade 7.7 与人工审阅组成一条可复现链路。你会从“一份模拟 STEP 文件、参数表、装配基准与审图标准”出发,得到“单位报告、约束清单、尺寸链风险表与人工复核标记”,并学会用真实命令、错误信号和停止条件判断成果能不能进入下一阶段。

yueyeguzhuo的专栏 266

特殊通信领域场景应用:基于Simulink的数字预失真(DPD)算法仿真建模示例

增益压缩:高功率输入时输出信号的增益下降。相位失真:输入信号的相位随功率变化而改变。带外干扰:非线性失真会引入额外的频谱分量,影响邻道信号。多项式模型:用多项式拟合功率放大器的非线性特性。查找表(LUT):通过离线训练生成预失真映射表。自适应算法:实时调整预失真参数以动态补偿失真。发送端:生成随机比特流并调制为射频信号。预失真模块:对输入信号进行预失真处理。功率放大器模块:模拟非线性失真。接收端:解调信号并评估误码率(BER)。

xiaoheshang_123的博客 274

Dify 第 19 篇 手把手教你开发 Dify 插件:从零实现一个时间工具

本文介绍了Dify平台的插件开发机制和流程。Dify支持多种插件类型,包括模型、工具、数据源等,可通过CLI工具快速开发插件。文章详细讲解了如何安装Dify CLI工具,并演示了从零开发一个获取系统时间插件的完整过程,包括项目初始化、文件解读和打包部署。通过该教程,开发者可以快速掌握Dify插件开发的核心要点,实现自定义功能扩展。

甘蓝的专栏 2450

海波龙(Hyperion,现属 Oracle)合并报表以 HFM(Hyperion Financial Management)为核心系统,方法论核心是以控制为基础确定合并范围,通过维度建模统一数据口径

摘要:海波龙合并报表系统(HFM)采用"规则驱动、维度建模"的方法论,通过四个核心环节实现自动化合并:确定合并范围、数据标准化、自动抵销调整及报表生成。系统支持多会计准则,以控制为基础划分合并方法(完全合并/权益法/成本法),通过维度建模统一数据口径,自动处理内部交易抵销、外币折算等复杂操作。业务操作流程涵盖数据采集、转换、抵销调整到报表生成全过程,关键控制点包括内部交易匹配、股权变动处理等。最终输出合规合并报表及完整审计线索,满足监管与管理需求。(150字)

金牌架构师 1306

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: 华为OD机试 - 查找树中元素(Java)
下一篇: 华为OD机试 - 二进制差异数(Java)
清水乐园
博客等级 码龄13年 175粉丝 398原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清水乐园

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值