题目描述
在系统、网络均正常的情况下组织核酸采样员和志愿者对人群进行[核酸检测]筛查。
每名采样员的效率不同,采样效率为N人/小时。
由于外界变化,采样员的效率会以M人/小时为粒度发生变化,M为采样效率浮动粒度,M=N*10%,输入保证N*10%的结果为整数。
采样员效率浮动规则:采样员需要一名志愿者协助组织才能发挥正常效率,在此基础上,每增加一名志愿者,效率提升1M,最多提升3M;如果没有志愿者协助组织,效率下降2M。
怎么安排速度最快?求总最快检测效率(总检查效率为各采样人员效率值相加)。
输入描述
第一行:第一个值,采样员人数,取值范围[1, 100];第二个值,志愿者人数,取值范围[1, 500];
第二行:各采样员基准效率值(单位人/小时),取值范围[60, 600],保证序列中每项值计算10%为整数。
输出描述
第一行:总最快检测效率(单位人/小时)
用例
| 输入 | 2 2 200 200 |
| 输出 | 400 |
| 说明 | 输入需要保证采样员基准效率值序列的每个值*10%为整数。 |
题目解析
用例解析:
-
有两个采样员和两个志愿者;
-
每个采样员需要配合一个志愿者才能发挥正常效率,即200;
-
当采样员和志愿者数量相等时,可以发挥最大效率,为400;
-
如果一个采样员配合两个志愿者,其效率提高为220,但另一个采样员将没有志愿者,效率降为160,此时总效率为380;
由此可以得出,最大效率为400
解题:
首先分两种情况:
1、志愿者数量少于采样员
2、志愿者数量不少于采样员,如果采样员:志愿者 的比例,超过了1:4,那么超出4倍采样员范围的志愿者将没有效率提升作用,因此有效志愿者数量最多是四倍的采样员数量。
情况1:
在情况1中,建议将有限数量的志愿者优先分配给高效率的采样员,并采取默认的一比一分配方式。如果高效率的采样员可以增加至少1

该博客主要讨论了华为OD机考中关于核酸筛查效率优化的问题。在给定采样员和志愿者人数及效率基础上,通过分析不同情况下的效率提升策略,确定如何分配志愿者以达到最高检测效率。文章提供了C++、JavaScript、Java和Python的解题思路和代码示例。
订阅专栏 解锁全文
5768

被折叠的 条评论
为什么被折叠?



