华为OD机试真题-核酸最快检测效率 【2023.Q1】

题目内容

每名采样员的效率不同,采样效率为N人/小时,由于外界变化,采样品的效率会以M人1小时为粒度发生变化,M为采样效率浮动粒度,M=N10%,输入保证N10%的结果为整数

采样员效率浮动规则:采样员需要一名志愿者协助组织才能发挥正常效率,在此基础上,每增加一名志愿者,效率提升1M,最多提升3M;如果没有志愿者协助组织,效率下降2M。
怎么安排速度最快?求总最快检测效率(总检查效率为各采样人员效率值相加)。

输入描述

第一行:第一个值,采样品人数,取值范围[1, 100]:第一个值。志愿者人数:取值范围[1, 500]
第二行:各采样员基准效率值(单位人/小时),取值范围[60,600],保证序列中每项值计算10%为整数。

输出描述
总最快检测效率(单位人1小时)

示例1:
输入:

2 2

200 200
输出:

400
说明:

输入保证采样员基准效率值序列的每个值*10%为整数。

解题思路

这道题使用动态规划求解。dp[i][j]表示有i个采样员和j个志愿者时的最快检测效率。值得注意的是,采样员和志愿者的下标从1开始

状态转移方程如下:
dp[i][j] = max(dp[i-1][j] + efficiencies[i-1] - 2 * range_efficiencies[i-1], dp[i-1][j-1] + efficiencies[i-1], dp[i-1][j-2] +

你可能感兴趣的:(Python,JS),算法,java,开发语言,华为机试,面试)