zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

2023-09-14 09:06:45 时间

华为od机试共有3道题,分值为100+100+200,总分为400分。时间限制为150分钟或3个小时。。每道题目都需要通过测试用例来得分,全通过则为满分。华为od机试是在牛客网上进行的,采用ACM模式。华为od机试目标院校分数为160分,华为od机试非目标院校,则至少300+
华为od机试会考到很多原题。对于算法较差的同学,建议购买。[最新华为OD机试2023(C++Java JS Py)] 包含2023的华为od机试最新题库以及2022的华为od机试老题库,所有题目都提供了使用C++ Java JavaScript 以及python实现详细的解法。

题目描述

一支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<