专栏首页苦逼的码农我是如何零准备苟进复赛圈?华为软挑开挂指南(附赛题预测)

我是如何零准备苟进复赛圈?华为软挑开挂指南(附赛题预测)

来源:两猿社

作者:互联网猿

这篇文章纯粹是心血来潮,原因是去年上传到github的参赛代码(文末点击阅读原文直达),前几天又有两个人star和fork了。


记得star热潮还是去年4月复赛刚结束的那几天,厚着脸皮在八大赛区的群里发消息求关注,之后就陷入了无限吃灰期。结果,我的开源代码在前几天突然又被挖出来了。

看了下时间,我想大概是有同学在准备今年的比赛,尝试研究去年的题目和开源代码。说实话,即使你愿意花很长时间来准备,效果也有限

很少有花了很长时间研究往年题目才冲进总决赛的参赛者,99%以上的参赛者都是0准备,直接刚

2020软件挑战赛即将到来,关于如何充分利用剩余时间备战软挑,冲进复赛圈。希望你看完这篇文章,能够找到一点方向。


关于我

  • 素有“死亡赛区”之称的成渝赛区18年、19年参赛者,18年一轮游,19年初赛第4,成功苟进复赛
  • 今年秋招凭借笔试绿卡免了机试,并拿到了华为无线的offer,奈何深圳研发没坑,与菊厂失之交臂,去了深圳某公仔厂
  • 始终坚信:最好的成绩可能不是最牛的算法,但肯定是对赛题和业务理解最深入的算法

直面软挑

华为软挑,全称华为软件精英挑战赛,是华为公司面向全球大学生举办的大型软件竞赛。从2015年开始举办,已成功举办5届,参赛人数和影响力正在逐年扩大。

  • 往年时间
    • 经过几次的举办,大赛基本稳定在3月初报名,上旬发布初赛赛题同时开启练习赛
    • 3月底线上初赛,次日公布复赛名单,发布复赛赛题同时开启练习赛
    • 4月中旬线下复赛,次日公布决赛名单,发布决赛赛题同时开启练习赛
    • 4月底在深圳举行线下全国总决赛
  • 参赛要求
    • 参赛对象:全日制在校大学生
    • 参赛语言:C/C++/Java/Python
    • 参赛形式:团队参赛,每队1-3人,可同校组队或在同一赛区内跨学校组队
  • 赛程规则
    • 分为区域初赛、区域复赛、全国总决赛
    • 区域初赛前32名进复赛
    • 区域复赛前4名进决赛
    • 全国总决赛共32名队伍,决出全国8强
  • 赛区机制
    • 每年比赛初期采取区域赛,将全国分为八大赛区
    • 京津冀东北赛区,上合赛区,杭厦赛区,江山赛区,成渝赛区,西北赛区,武长赛区,粤港澳赛区
    • 西北赛区成渝赛区 被称为每年的 “死亡赛区”,可能是成电和西电太多同学想去菊厂了
  • 全国总决赛奖项
    • 一等奖,1队,奖金¥20万
    • 二等奖,2队,每队奖金¥10万
    • 三等奖,5队,每队奖金¥5万
    • 最优美代码奖,1队,奖金¥1万
  • 区域复赛奖项
    • 决胜奖:4队,进入全国总决赛,进入优才计划
    • 优胜奖:每赛区第5-36队,区域36强,面试绿卡(2019年36强改为32强,面试绿卡改为笔试绿卡
    • 入围奖:每赛区第37-64队,区域64强,面试绿卡(2019年取消入围奖

解析预测

  • 赛题解析
    • 来源:华为公司部门轮流出题,基本是公司内部实际业务为背景
    • 算法:大部分赛题集中在图算法和最优化,也有一部分涉及预测和AI相关
    • 目的:比赛会作为公司产品的一种推广手段,盲猜2018年与华为云有关,2019年与5G车联网和AI有关,今年或许会与鲲鹏计算平台或鸿蒙系统有关
  • 时间预测
    • 基于新型冠肺炎疫情防控形势,2020华为软挑预计会推迟 ,但不会取消举办
    • 初赛启动时间可能会在3月底复赛大概率由线下改为线上比赛决赛举办方式应该会视疫情走势而定
  • 赛题预测
    • 为了保持软件竞赛初心和照顾参赛者,会延续前几届的出题方式,预测今年图算法和最优化相关的可能仍然很大
    • 2019年在决赛中首次涉及AI车牌识别,今年AI的比重或许会增加,预测今年初赛重在软件基础,复赛会涉及AI,决赛会加深,仍会让参赛者使用自研平台

比赛实况

  • 比赛难度
    • 代码难度:不同于ACM等纯算法编程类比赛,难度要低得多,重在软件编程
    • 题目难度:需求任务书是阅读理解,赛题从业务抽象,需要将题目简化。19年的复杂规则令人头秃,堪称历史最难
    • 比赛规则:练习赛不是绝对,正式比赛才大浪淘金。正式比赛会增加数据规模,复赛和决赛会现场更改需求
  • 实际参赛对象
    • 学历:绝大多数是研究生 ,很多人是第一次参加纯代码比赛
    • 专业:集中在计算机、软件、自动化、通信、数学等专业
    • 动机:很多人参赛是因为比赛与自己研究方向相近,只有CS专业不这么想

0准备,如何苟

划重点!!! 前面介绍了这么多,接下来的才是重点,0准备,如何苟进复赛圈!

  • 学会抱团
    • 千万不要一个人肝!18年初赛练习赛进入前十,结果正式赛崩了,一个人手忙脚乱,成功一轮游
    • 好团队是必胜关键。19年组队,很多奇思妙想都是队友想出来的,分工配合,最后初赛第4,苟进复赛
  • 尽量多划水
    • 划群划水划论坛。 划水同学们的福音。混迹八大赛区的群和论坛,与大佬们交流,你总能找到奇思妙想,我是认真的。
  • 釜底抽薪
    • 阅读理解要做好。 最好的成绩并不是最牛的算法,肯定是深入理解业务与赛题的算法。19年比赛,棋盘状道路上发车,我们的算法只是简单的Dijkstra,但我们采用了对角线发车,并尽可能选择双向车道,这种技巧明显降低了死锁率。
  • 步步为营
    • 先完成,再完美。 比赛一开始,不要考虑过于苛刻的条件和因素。基本思路是魔改基础算法+tips,做好阅读理解,先简化条件,提交一个有成绩代码。在此基础上,再继续迭代算法,相信我,你的心态会完全不一样。
  • Python大法好
    • 首次参赛且0准备的人。18年参赛的时候,我一个C++菜鸡几乎是0基础,看到输入输出文件后直接退缩了。重新现找视频学Python,当时的学习速度真的很快,学完即用。如果你也是这种情况,强烈推荐用Python,后期拓展AI也容易得多。
  • 逆向工程
    • 从判题公式出发。 18年的题目是预测+分配,判题公式是预测准确率*分配率。因为预测本来就不准,很多人先将分配率做到100%,然后反向预测,很多人利用了这一点而苟进复赛
    • 判题器并不必须。 19年的题目是车辆路径规划,规则巨复杂,为了避免死锁,很多团队开始刚判题器,将其嵌入自己的代码。但判题器并不是必须的,很多进入复赛的队伍,包括我们,都没有写。
  • 稳一手
    • 霸榜成绩稳一手。 如果自己算法达到的霸榜的成绩时,不要急于发出来,尽量苟到正式比赛。你想要霸榜,就要做好被人踢榜的准备
    • 需求更改稳一手。 正式比赛会修改需求,但并不是原来的代码不能用,而是修改后成绩更好。所以正式比赛时做好分工,有人改需求,有人继续尝试现有代码
  • 版本控制
    • 版本不存档,比赛火葬场。 正式比赛会修改数据规模和需求,需要修改现有代码,原来版本很有可能会被将改崩,或者出现三个人的代码不一致的情况。如果因为版本问题达不到理想的成绩,就比较遗憾了。

目前如何备战

2020软件挑战赛即将到来,关于如何充分利用剩余时间备战软挑,冲进复赛圈,这里再分享几个tips。

  • 输入输出文件
    • 这不是说笑,很多人在看到输入输出文件格式后被劝退
    • 输入一般为txt文件。注意涉及特殊符号、时间格式和文件的末尾空格
    • 将这几年的文件读取和输出看一下,准备几个版本
  • 图算法
    • 路径规划算法
    • 最大流算法
  • 优化算法
    • 遗传算法
    • 蚁群算法
    • 粒子群算法
  • 预测算法
    • 简易平均
    • 移动平均
    • 指数平滑
    • 线性回归
  • AI相关
    • 主要是图像领域,包括但不限于图像识别,目标检测,行为骨骼点检测

以上算法,并不是要大家现在去学懂,学会,这并不现实。

但,至少要把对应的代码找到,链接保存下来,用到的时候可以很快找到。

本文分享自微信公众号 - 苦逼的码农(di201805)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 二分法题型小结

    在刷题的过程中,二分法用的还是挺多的,有时候超时了往往是你没有用上二分法,今天我就来稍微总结下用的最多的三种二分法搜索。

    帅地
  • 有了这套模板,女朋友再也不用担心我刷不动 LeetCode 了

    下面的动画以 「力扣」第 704 题:二分查找 为例,展示了使用这个模板编写二分查找法的一般流程。

    帅地
  • 以后有面试官问你「跳跃表」,你就把这篇文章扔给他

    假如我们要用某种数据结构来维护一组有序的int型数据的集合,并且希望这个数据结构在插入、删除、查找等操作上能够尽可能着快速,那么,你会用什么样的数据结构呢?

    帅地
  • CSS 层叠相关知识指北

    亲爱的观众老爷们大家好~我发现我写文章都是因为工作碰到问题才写,什么探索最前沿的最讨厌了(其实是力有所不及)!言归正传,最近碰到的问题是这个:准备开发一个平台,...

    疯狂的技术宅
  • 前端-CSS3 中的层叠上下文初探

    前言:关于层叠上下文,笔者还没有去阅读更详细的 W3C 规范来了解更本质的原理(表打我,等我校招拿到 offer 了我就读好伐 T_T)。一直听说 CSS3 里...

    grain先森
  • Gson 简单使用姿势小结

    关于 Json 序列化的框架可以说比较多了,比如 Spring 默认的 Jackson,国内互联网用的比较多的 FastJson,本文则主要介绍一下 Gson ...

    一灰灰blog
  • 破解PRISMA(中)

    对PRISMA的研究已经持续了一周了。虽然还没有完全破解PRISMA最终各种滤镜算法的奥妙,但是确实得到了不少宝贵的信息。 喏,比如上次,我们就找到了这篇著名的...

    刀刀老高
  • 一次bypass Xss-waf的经历

    接到测试网站,利用crawlergo+XRAY扫到了一个xss,这是入口点。打开网页长这个样子。

    重生信息安全
  • 基于HT的CSG功能构建HTML5的3D书架

    HT_hightopo
  • 基于HT的CSG功能构建HTML5的3D书架

    构造实体几何CSG全称Constructive solid geometry,是3D计算机图形学中构建模型的常用技术,可通过合并Union、相减Subtract...

    HT for Web

扫码关注云+社区

领取腾讯云代金券