<link rel="stylesheet" href="./index.css">
<div class="blog-content-box">
<div class="article-header-box">
<div class="article-header">
<div class="article-title-box">
<h1 class="title-article" id="articleContentId">华为OD机试 - 总最快检测效率(Java & JS & Python)</h1>
</div>
</div>
</div>
<article class="baidu_pl">
<div id="article_content" class="article_content clearfix">
<link rel="stylesheet"
href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">
<link rel="stylesheet"
href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-25cebea3f9.css">
<div id="content_views" class="htmledit_views">
<h2 id="main-toc"><a name="t0"></a>题目描述</h2>
<p>在系统、网络均正常的情况下组织核酸采样员和志愿者对人群进行<a
href="https://so.csdn.net/so/search?q=%E6%A0%B8%E9%85%B8%E6%A3%80%E6%B5%8B&spm=1001.2101.3001.7020"
target="_blank" class="hl hl-1"
data-report-click="{"spm":"1001.2101.3001.7020","dest":"https://so.csdn.net/so/search?q=%E6%A0%B8%E9%85%B8%E6%A3%80%E6%B5%8B&spm=1001.2101.3001.7020","extra":"{\"searchword\":\"核酸检测\"}"}"
data-tit="核酸检测" data-pretit="核酸检测">核酸检测</a>筛查。</p>
<p>每名采样员的效率不同,采样效率为N人/小时。</p>
<p>由于外界变化,采样员的效率会以M人/小时为粒度发生变化,M为采样效率浮动粒度,M=N*10%,输入保证N*10%的结果为整数。</p>
<p>采样员效率浮动规则:采样员需要一名志愿者协助组织才能发挥正常效率,在此基础上,每增加一名志愿者,效率提升1M,最多提升3M;如果没有志愿者协助组织,效率下降2M。</p>
<p>怎么安排速度最快?求<strong>总最快检测效率</strong>(总检查效率为各采样人员效率值相加)。</p>
<p></p>
<h2 id="%E8%BE%93%E5%85%A5%E6%8F%8F%E8%BF%B0"><a name="t1"></a>输入描述</h2>
<p>第一行:第一个值,采样员人数,取值范围[1, 100];第二个值,志愿者人数,取值范围[1, 500];<br> 第二行:各采样员基准效率值(单位人/小时),取值范围[60,
600],保证序列中每项值计算10%为整数。</p>
<p></p>
<h2 id="%E8%BE%93%E5%87%BA%E6%8F%8F%E8%BF%B0"><a name="t2"></a>输出描述</h2>
<p>第一行:总最快检测效率(单位人/小时)</p>
<p></p>
<h2 id="%E7%94%A8%E4%BE%8B"><a name="t3"></a>用例</h2>
<div class="table-box">
<table border="1" cellpadding="1" cellspacing="1" style="width:500px;">
<tbody>
<tr>
<td style="width:86px;">输入</td>
<td style="width:412px;">2 2<br> 200 200</td>
</tr>
<tr>
<td style="width:86px;">输出</td>
<td style="width:412px;">400</td>
</tr>
<tr>
<td style="width:86px;">说明</td>
<td style="width:412px;">输入需要保证采样员基准效率值序列的每个值*10%为整数。</td>
</tr>
</tbody>
</table>
</div>
<p></p>
<h2 id="%E9%A2%98%E7%9B%AE%E8%A7%A3%E6%9E%90"><a name="t4"></a>题目解析</h2>
<p>用例意思是:</p>
<p>有两个采样员,两个志愿者。</p>
<p>两个采样员的正常效率都是200,但是要给每个采样员配一个志愿者才能发挥正常效率。</p>
<p>现在刚好采样员和志愿者是一比一,因此可以发挥出总效率是:200 + 200 = 400。</p>
<p></p>
<p>如果,我们给一个采样员配两个志愿者,那么该采样员发挥的效率是:200 + 200 * 10% = 220。</p>
<p>但是另一名采样员就没有志愿者了,因此发挥不了正常效率,200 - 200 * 20% = 160,此时总效率是220 + 160 = 380。</p>
<p>因此,总最快效率是400。</p>
<p></p>
<p>需要注意的是,用例中采样员的正常效率只是凑巧相同,很有可能出现一个采样员的正常效率极高,一个采样员的正常效率极低的情况。</p>
<p></p>
<p>我的解题思路如下:</p>
<p>首先分两种情况:</p>
<p>1、志愿者数量少于采样员</p>
<p>2、志愿者数量不少于采样员</p>
<p></p>
<p>对于情况1,我们应该将不多的志愿者优先分配给高效率的采样员,默认一比一分配。</p>
<p>接下来,我们应该考虑,剥夺低效率的采样员的志愿者 给 高效率的采样员,只要 高效率采样员增加的10%的效率 可以大于 低效率采样员减少的20%的效率。</p>
<p>其中还要考虑,高效率的采样员最多可以追加3个志愿者,即最多增加30%的效率。如果最高效率的采样员已经提升30%效率,则第二高效率的采样员称为最高优先级,继续上面剥夺逻辑。</p>
<p></p>
<p>对于情况2,我们应该先按一比一的方式,给每个采样员分配一个志愿者。</p>
<p>然后,如果还多出志愿者的话,则优先分配给高效率的采样员,同样需要注意每个采样员最追加3个志愿者。</p>
<p>当多出的志愿者分配完后,我们需要考虑剥夺低效率的采样员的志愿者 给 高效率的采样员,只要 高效率采样员增加的10%的效率 可以大于
低效率采样员减少的20%的效率。逻辑同情况1。</p>
<p></p>
<p>根据ant_shi网友的指正,上面解析对于志愿者超出采样员数量四倍时的情况考虑不够全面:</p>
<blockquote>
<p>另外,对于情况2而言,如果采样员:志愿者 的比例,超过了1:4,那么超出4倍采样员范围的志愿者将没有效率提升作用,因此有效志愿者数量最多是四倍的采样员数量。</p>
</blockquote>
<p></p>
<h2><a name="t5"></a>贪心思维解法</h2>
<h3 id="%E7%AE%97%E6%B3%95%E6%BA%90%E7%A0%81"><a name="t6"></a>JavaScript算法源码</h3>
<pre data-index="0" class="set-code-hide"
name="code"><code class="language-javascript hljs"><ol class="hljs-ln hundred" style="width:991px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">/* JavaScript Node ACM模式 控制台输入获取 */</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-keyword">const</span> readline = <span class="hljs-built_in">require</span>(<span class="hljs-string">"readline"</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-keyword">const</span> rl = readline.<span class="hljs-title function_">createInterface</span>({</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> <span class="hljs-attr">input</span>: process.<span class="hljs
没有合适的资源?快使用搜索试试~ 我知道了~
华为机试100分值Java版-2024最新
共80个文件
html:79个
css:1个
需积分: 5 6 下载量 90 浏览量
2024-02-23
22:08:28
上传
评论
收藏 482KB RAR 举报
温馨提示
华为机试100分值Java版-2024最新
资源推荐
资源详情
资源评论
收起资源包目录
华为机试100分值Java版-2024最新.rar (80个子文件)
100分值
31-最多获得的短信条数、云短信平台优惠活动-动态规划&背包DP&完全背包.html 28KB
69-信号发射和接收-数据结构&栈&单调栈.html 126KB
13-打印机队列-数据结构&优先队列.html 50KB
39-最大报酬-动态规划&背包DP&01背包.html 78KB
61-微服务的集成测试-分治递归.html 81KB
3-字符串重新排列、字符串重新排序-字符串,数组,集合操作.html 31KB
63-递增字符串-动态规划.html 29KB
8-等和子数组最小和-回溯算法.html 51KB
38-通信误码-字符串,数组,集合操作.html 39KB
46-找数字、找等值元素-逻辑分析.html 45KB
70-日志限流-二分查找.html 50KB
25-机器人、机器人活动区域-数据结构&并查集.html 69KB
68-Linux发行版的数量-数据结构&并查集.html 54KB
32-最短木板长度-贪心思维.html 93KB
76-最快到达医院的方法-数学问题.html 29KB
78-插队-数据结构&优先队列.html 60KB
24-星际篮球争霸赛、MVP争夺战-回溯算法.html 55KB
48-任务总执行时长-逻辑分析.html 26KB
27-总最快检测效率-数据结构&优先队列.html 176KB
34-最大利润、贪心的商人-贪心思维.html 39KB
60-新员工座位-逻辑分析.html 40KB
7-租车骑绿岛-贪心思维.html 32KB
11-最小调整顺序次数、特异性双端队列-逻辑分析.html 39KB
73-统一限载货物数最小值-数据结构&优先队列.html 146KB
57-快递投放问题-逻辑分析.html 55KB
35-挑选字符串-逻辑分析.html 34KB
15-二元组个数-逻辑分析.html 44KB
43-获取最大软件版本号-字符串,数组,集合操作.html 113KB
53-优秀学员统计-字符串,数组,集合操作.html 47KB
41-开放日活动、取出尽量少的球-二分查找.html 49KB
14-模拟商场优惠打折-逻辑分析.html 79KB
64-单词倒序-逻辑分析.html 40KB
47-整理扑克牌-逻辑分析.html 98KB
54-静态扫描-贪心思维.html 35KB
36-优选核酸检测点-区间问题&区间交集.html 81KB
72-最佳对手-贪心思维.html 157KB
79-称砝码-动态规划&背包DP&多重背包.html 83KB
51-猜字谜-字符串,数组,集合操作.html 71KB
49-查找单入口空闲区域-深度优先搜索DFS.html 66KB
9-过滤组合字符串、字母组合-回溯算法&组合问题.html 51KB
18-最长的密码-逻辑分析.html 58KB
55-机房布局-区间问题&区间交集.html 71KB
40-投篮大赛-逻辑分析.html 47KB
75-服务中心选址-二分查找.html 84KB
21-快递业务站-数据结构&并查集.html 46KB
29-匿名信-逻辑分析.html 37KB
17-计算数组中心位置-单指针 + 大数处理.html 35KB
42-简单的自动曝光-逻辑分析.html 40KB
22-箱子之字形摆放-逻辑分析.html 31KB
52-异常的打卡记录-字符串,数组,集合操作.html 68KB
67-网上商城优惠活动-逻辑分析.html 82KB
4-完美走位-滑动窗口&尺举法.html 52KB
45-查找重复代码-动态规划&最长公共子串.html 41KB
59-识图谱新词挖掘-滑动窗口.html 98KB
56-人数最多的站点-动态规划&差分数列.html 112KB
6-不含101的数-动态规划&数位DP.html 44KB
20-端口合并-逻辑分析.html 60KB
1-处理器问题、AI处理器组合-回溯算法&组合问题.html 82KB
2-单向链表中间节点-数据结构&链表.html 65KB
37-开心消消乐-数据结构&并查集.html 59KB
77-回文字符串-字符串,数组,集合操作.html 37KB
19-对称美学-分治递归.html 88KB
5-最多颜色的车辆-滑动窗口.html 42KB
23-新学校选址、学校的位置-数学问题&中位数定理.html 35KB
26-日志首次上报最多积分-动态规划.html 33KB
65-组合出合法最小数-逻辑分析.html 95KB
28-任务调度-数据结构&优先队列.html 99KB
33-冗余覆盖、最左侧冗余覆盖子串-滑动窗口&尺举法.html 57KB
12-羊、狼、农夫过河-暴力枚举.html 57KB
71-最优资源分配-逻辑分析.html 38KB
16-积木最远距离、相同数字的积木游戏-逻辑分析.html 33KB
44-预订酒店-二分查找.html 33KB
30-密室逃生游戏-逻辑分析.html 28KB
58-区块链文件转储系统-滑动窗口 .html 37KB
62-寻找相似单词-字符串,数组,集合操作.html 33KB
74-最多几个直角三角形-回溯算法&组合问题.html 112KB
10-真正的密码-逻辑分析.html 30KB
index.css 297KB
66-天然蓄水库-双指针.html 73KB
50-货币单位换算-逻辑分析.html 86KB
共 80 条
- 1
资源评论
adagio
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功