当前位置:   article > 正文

华为OD机试C卷-- 用户调度问题(Java & JS & Python & C)

华为OD机试C卷-- 用户调度问题(Java & JS & Python & C)

获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
通信系统中,一个常见的问题是对用户进行不同策略的调度,会得到不同的系统消耗和性能。

假设当前有n个待串行调度用户,每个用户可以使用A/B/C三种不同的调度策略,不同的策略会消耗不同的系统资源。请你根据如下规则进行用户调度,并返回总的消耗资源数。

规则:
1.相邻的用户不能使用相同的调度策略,例如,第1个用户使用了A策略,则第2个用户只能使用B或者C策略。
2.对单个用户而言,不同的调度策略对系统资源的消耗可以归一化后抽象为数值。例如,某用户分别使用A/B/C策略的系统消耗分别为15/8/17。
3.每个用户依次选择当前所能选择的对系统资源消耗最少的策略(局部最优),如果有多个满足要求的策略,选最后一个。

输入描述
第一行表示用户个数n
接下来每一行表示一个用户分别使用三个策略的系统消耗resA resB resC

输出描述
最优策略组合下的总的系统资源消耗数

题目解析
这个问题可以看作是一个动态规划问题,其中我们需要找到一种策略组合,使得相邻用户使用的策略不同,并且总的系统资源消耗最少。

我们可以定义一个二维数组dp[i][j],其中dp[i][j]表示对于前i个用户,并且第i个用户使用了策略j(j可以是A、B、C,为了简化计算,我们可以用0、1、2代替)时的最小系统

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/777774
推荐阅读
相关标签
  

闽ICP备14008679号