2021华为软件精英赛初赛试题解析,欢迎讨论

华为赛题

题目是啥
云资源的规划和调度的一个优化问题。

1.输入:

2 // N:服务器的台数
(NV603, 92, 324, 53800, 500)
//(类型,cpu核数,内存大小,硬件成本,每日能耗)
(NV604, 128, 512, 87800, 800)
2//M:虚拟机的台数
(c3.large.4, 2, 8, 0)
//(类型,cpu核数,内存大小,0:单节点部署,1:双节点部署)
(c3.8xlarge.2, 32, 64, 1)
3//T:用户请求序列的天数,
//第一天
2//操作的请求数
(add, c3.large.4, 5)
//(add:创建、del:删除,虚拟机型号,服务器ID)
(add, c3.large.4, 0)
//第二天
2
(del, 0)
(add, c3.8xlarge.2, 1)
//第三天
3
(add, c3.large.4, 2)
(del, 1)
(del, 2)

2. 约束

  • 服务器

    • 硬件成本
    • 每日能耗
    • NUMA架构,有A,B两节点

    CPU 核数,内存大小,硬件成本,每日能耗成本均

    为正整数。每台服务器的 CPU 核数以及内存大小不超过 1024,硬件成本不超过 5

    ×105,每日能耗成本不超过 5000。服务器型号长度不超过 20,仅由数字和大小

    写英文字符构成。

  • 虚拟机

    • 单节点部署
    • 双节点部署(CPU和内存必为偶数)
    • 对于每种类型的虚拟机,数据集保证至少存在一种服务器可以容纳。虚拟机型号长度不超过 20,仅由数字,大小写英文字符和’.'构成。
  • 容量是有限的

  • 请求序列:每天会有新的虚拟机被创建和删除

3. 可进行的操作

  • 扩容

    得到请求序列后可以对其需求进行合理的选购(考虑硬件成本),注意开始没有任何服务器

  • 迁移

    把虚拟机从一台服务器迁移至另一台服务器,对于单节点部署的虚拟机,将其从一台服务器的 A 节点迁移至 B 节点(或反之)也是允许的,每次最多迁移当前虚拟机数的千分之五

  • 部署

    你要为虚拟机指定一台服务器进行部署。若虚拟机是单节点部署的,你还需要指明部署在服务器的 A 节点还是 B 节点。

**注:**任意一台服务器上每个节点容纳的虚拟机资源总和都不能超出节点本身的资源容量(指 CPU 和内存两个维度)。

4. 输出

// 该按顺序包含 T 天中每一天的决策信息
(purchase, 2)//(购买,服务器的数量)
(NV603, 1)
//(服务器类型,购买数量,ID按顺序编号)
(NV604, 1)
//(迁移,W:迁移的数量)
(migration, 0)
//迁移格式:(虚拟机 ID, 目的服务器 ID)或 (虚拟机 ID, 目的服务器 ID, 目的服务器节点)

//部署情况,双节点只需输出服务器ID,单节点还需给出部署节点
(0, A)
(0, B)

//第二天
(purchase, 0)
(migration, 0)
(1)
//第三天
(purchase, 0)
(migration, 0)
(1, B)

5. 评判

  • 服务器的硬件成本加上每天的能耗成本越低越好。
  • 若总成本相同,则按迁移的虚拟机数越小越好。
  • 前两者都相同,程序用时少的越好。
  • 以上还都相同,则先提交代码的越好。

你可能感兴趣的:(java,算法,小程序,c++,运维)