2020中兴捧月算法大赛参赛总结

前言

年初因为疫情的原因没办法返校,一直在家待到了5月下旬。期间,看到了学校群里有人宣传2020年的中兴算法赛,就去看了看几个赛题。因为参加过2019年华为的软挑,因此看到迪杰斯特拉赛道的赛题有种熟悉感,因此决定试一下这个赛道,没想到误打误撞进入了决赛,真是意外之喜。这里做一下参赛总结。

初赛

初赛赛题是一道带约束的信道资源规划题,节点之间有链路相连,且链路本身也被划分为多条通道,每个通道都从1开始编号(类比道路上有多条车道)。根据输入数据的要求,在节点与节点之间建立起一定带宽的信道,信道的建立需要消耗带宽资源,且根据建立信道时所选择的通道,按照给定规则消耗节点内的人工资源。资源约束主要有两点:

  • 节点之间的链路所辖的各个通道的带宽有限
  • 每个节点内的人工资源有限

题目的目标是根据输入的要求,在有限的资源下,尽可能多的规划出信道。当然,规划失败的信道数量以及容量越多,得分也就越低。

初赛的题解我记录在了这篇博客中:2020中兴捧月算法大赛迪杰斯特拉赛道初赛题解。最后跑出了95.132的成绩。在解初赛题的过程中,我觉得最重要的就是理解题目,并始终紧盯目标。从我们期待达到什么样的目标导出如果想要达到目标那么规划出的信道应该具有怎样的特点,然后才是实现的细节。

初赛的收货是锻炼了编程能力,也学到了一些有关图的算法。

复赛

复赛没有编码环节,具体的形式是视频面试。这个面试跟找工作的时候面试差不多,不过与面试官的交流主要还是围绕着初赛赛题。主要的问题如下:

  1. 自我介绍
  2. 初赛的解题思路及赛题相关的一些问题
  3. 介绍一个自己做过的项目,这个项目中最困难的地方
  4. 有什么想问的问题

最后我问了面试官他所在部门的情况,他们主要是做网络调度相关的算法。因为我做嵌入式软件比较多,和他们部门在技术栈上不太契合,所以我问了面试官怎么看待技术栈不是很匹配的求职者,可能因为我是应届生吧,面试官回答的大意是主要看能力,技术栈不匹配也是有机会的。

复赛的收获主要是在秋招之前提前感受了一下面试,算是为秋招做个准备吧。

决赛

决赛的要点是寻路算法的优化,从算法复杂度、工程实现等方面优化算法,使得在给定的测试用例下算法的执行时间越少越好。由于给的用例数量较大,因此最后的目标也就是在限定的时间内,通过的用例越多越好。最后的结果不理想,提交上去的代码出了BUG。在本地测试的时候,限定时间范围内跑了10万多个用例没有出问题,因此我也就没有把时间限制放开跑所有的用例,后来发现跑所有21万个用例有两个没有过。这也算是一个经验教训吧,在软件开发的过程中严谨的态度是很重要的,尊重每一个用例^_^!!

总的来说,这次比赛收获还是比较大的,感谢中兴提供了这个平台,同时感谢赛题组的各位老师以及工作人员对我们的照顾!

你可能感兴趣的:(总结与感悟)