2021华为软件精英挑战赛(附赠线下判题器链接)——经历
1、题目解析
本次赛题源自现实的互联网企业面临的问题,怎样购买与部署服务器最便宜!
服务器:不相同型号的服务器有着不同的CPU与不同的内存,每台服务器又有两个节点,两个节点平分服务器的内存。当然,不同型号的服务器的价格是不同的,每日能耗也是不同的。如:NV603,92C,324G,53800¥,500¥(分别对应:型号,CPU数量,内存大小,价格,每日能耗)。
虚拟机:不相同型号的虚拟机所需的CPU与内存是不同的,虚拟机分为单节点部署的,与双节点部署的,顾名思义,单节点服务器就是挂载到服务器的一个节点上,占用一个节点的CPU与内存,双节点服务器就是要挂载到两个节点上,占用两个节点CPU与内存。如:s3.small.1 ,1C,1G 单节点(分别对应:型号,所需CPU,所需内存,单或双节点)。
本次比赛采用标准输入stdin。举例来说:C语言,就是scanf();选手需要采用标准输出,即printf();
本次比赛输入格式如下:
2 //有多少种服务器供你购买
(NV603, 92, 324, 53800, 500) //标准输入:服务器:(型号,cpu,memory,购买价格,每日能耗)
(NV604, 128, 512, 87800, 800)
2 //有多少种不同的虚拟机
(c3.large.4, 2, 8, 0) //标准输入:虚拟机:(型号,CPU,memor,服务器单双节点部署(0单节点,1双节点))
(c3.8xlarge.2, 32, 64, 1)
3 //有多少天的请求
2 //第一天请求数量
(add, c3.large.4, 5) //添加请求,标准输入:(添加指令,服务器型号,虚拟机的id)
(add, c3.large.4, 0)
2
(del, 0) //删除请求,标准输入:(删除指令,要删除的虚拟机的ID)
(add, c3.8xlarge.2, 1)
3
(add, c3.large.4, 2)
(del, 1)
(del, 2)
本次比赛的输出格式如下:
(purchase, 2) //输出今天购买多少个服务器
(NV603, 1) //输出购买服务器的种类,数量
(NV604, 1)
(migration, 0)//输出今天需要迁移的虚拟机的数量
(0, A) //有迁移需要输出迁移在输出部署,没迁移则输出部署//单节点部署
(0, B) //部署格式(服务器的ID,节点A,B)
(purchase, 0)
(migration, 0)
(1) //双节点部署,部署格式(服务器ID)
(purchase, 0)
(migration, 0)
(1, B)
2、针对输出有几个重点注意的地方
1、要严格按照输出实例来输出!否则就会判题出错。
2、最重要一点就是服务器的ID顺序:
服务器的ID要严格按照此顺序来赋ID,否则将判题出错,会出cpu或内存溢出错误。
3、就是输出虚拟机部署的顺序,一定要按照指令格式来,否则将会出错,会出单双节点部署格式不对。
3、本次比赛的线下判题器
https://github.com/B1ACK917/2021HWAutoGrader