一、题目描述
在通信系统中,一个常见的问题是对用户进行不同策略的调度,会得到不同的系统消耗和性能。
假设当前有n个待串行调度用户,每个用户可以使用A/B/C三种不同的调度策略,不同的策略会消耗不同的系统资源。请你根据如下规则进行用户调度,并返回总的消耗资源数。
规则:
- 相邻的用户不能使用相同的调度策略,例如,第1个用户使用了A策略,则第2个用户只能使用B或者C策略。
- 对单个用户而言,不同的调度策略对系统资源的消耗可以归一化后抽象为数值。例如,某用户分别使用A/B/C策略的系统消耗分别为15/8/17。
- 每个用户依次选择当前所能选择的对系统资源消耗最少的策略(局部最优),如果有多个满足要求的策略,选最后一个。
二、输入描述
第一行表示用户个数n。
接下来每一行表示一个用户分别使用三个策略的系统消耗。
三、输出描述
最优策略组合下的总的系统资源消耗数。
四、解题思路
1、核心思想:
- 每个用户依次选择当前所能选择的对系统资源消耗最少的策略;
- 相邻的用户不能使用相同的调度策略
2、说人话:
- 选择每一行最小的值;
- 并且不能选择和上一行策略相同的那个数
这就简单了。</
这篇博客介绍了华为OD机试中的一道Java题目,涉及用户调度问题。题目要求根据特定规则进行用户调度,使得系统资源消耗最小。解题思路是每个用户选择消耗最少的策略,且相邻用户策略不能相同。博主给出了Java算法源码和具体的效果展示,最后展示了输出的总资源消耗为59。
订阅专栏 解锁全文
501






