O准备如何苟进复赛圈?华为软挑开挂指南(附赛题预测)
事先声明,这不是华为软挑的软广,我也不是海军。
这篇文章纯粹是心血来潮,原因是去年上传到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相关
- 主要是图像领域,包括但不限于图像识别,目标检测,行为骨骼点检测
以上算法,并不是要大家现在去学懂,学会,这并不现实。
但,至少要把对应的代码找到,链接保存下来,用到的时候可以很快找到。
了解我
请关注公众号 “两猿圈”.
- 带你丰富项目经验,轻松应对校招!
- 项目模块详解,公众号内持续更新!

O准备如何苟进复赛圈?华为软挑开挂指南(附赛题预测)的更多相关文章
- IMCASH:看着朋友赚钱进币圈 我凭啥亏钱? 4月29日币圈报告
即将过去的四月份,币圈的行情总体是不错的,比特从4000附近最高涨到了5600以上的位置,当前也在5200左右,而成交量更是创出历史天量(4月3日,全球加密货币市场的交易量达890亿美元,创历史天量) ...
- Android仿微信朋友圈,全文收起功能,附源码
在众多的社交类软件中,朋友圈是必不可少的,可以与好友.同学等分享自己的日常和有意思的事情,在开发社交类App时,朋友圈发表的内容你不可能让他全部显示,全部显示的话用户体验度会非常不好,这时就要用到全文 ...
- 华为RH2288V3服务器部署指南
一.配置好局域网 首先配置好局域网,将电脑和服务器通过网线直连,服务器默认IP192.168.2.100,因此电脑本地的IP需要设置一下改为和服务器同一网段: 二.登录导控制页面 浏览器中输入服务器的 ...
- 华为oj 挑7
#include<iostream> using namespace std; bool ishave_7(int n); int main(){ int num,k=0; cin> ...
- NOIP模拟测试25
这次考试后面心态爆炸了...发现刚了2h的T2是假的之后就扔掉了,草率地打了个骗分 T1只会搜索和m=0 最先做的T3,主要是发现部分分很多,当时第一眼看上去有87分(眼瞎了). 后来想了想,感觉一条 ...
- 秋招打怪升级之路:十面阿里,终获offer!
本文转载自:https://gongfukangee.github.io/2019/09/06/Job/ 作者:G.Fukang 开源项目推荐: JavaGuide: Java学习+面试指南!Gith ...
- leetcode_课程表(BFS、拓扑排序)
题目描述: 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 .在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹 ...
- <路径算法>哈密顿路径变种问题(2016华为软件精英挑战赛初赛)
原创博客,转载请联系博主! 前言:几天前华为的这个软件精英(算法外包)挑战赛初赛刚刚落幕,其实这次是我第二次参加,只不过去年只入围到了64强(32强是复赛线),最后搞到了一个华为的一顶帽子(感谢交大l ...
- 华为C语言笔试题集合
①华为笔试题搜集 1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变. 2) 在模块内(但在函数体外),一个被声明为 ...
随机推荐
- 理解TCP/IP协议栈之HTTP2.0
1 前言 前面写了10多篇关于Redis底层实现.工程架构.实际应用的文章,感兴趣的读者可以进行阅读,如有问题欢迎交流: 1.Redis面试热点之底层实现篇-12.Redis面试热点之底层实现篇-23 ...
- python对象的初始化
效果图: 代码: # 对象的初始化 class Person: # 在类中可以定义一些特殊方法(魔术方法) # 特殊方法都是以__开头,__结尾的方法 前后都是两个下划线 # 特殊方法会在特殊的时刻自 ...
- Office系列(1)---将Office文件(Word、PPT、Excel)转换为PDF文件
需求: 将Office文件作为文章并在网页上预览,主要为(Word.PPT.Excel)3种类型文件. 研究了一下,找到了两种解决方案 直接调用微软的在线预览功能实现(预览前提:预览资源必须可以直接通 ...
- Linux环境下Mysql开启远程访问权限
如何通过Window的数据库可视化工具远程连接装在Linux上的Mysql呢?可以按照以下步骤逐一确认! 检查监听端口是否存在 netstat -ntlp |grep mysql 检查Mysql配置配 ...
- border 边框
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- phpstorm配置git并解决Terminal 中文乱码(Unicode 编码)的方法
前言:在使用PHPstorm的时候,需要用到terminal,主要还是用这个操作git,但是在使用这个的时候会发现,代码里所有中文都是乱码状态,不利于使用,下面就来看看怎么解决这个问题 一.先在php ...
- spring boot+spring security 使用随笔
本人最近接受的新任务是从零搭一个管理系统的权限管理模块,从零开始学习了spring security,已完成绝大部分设计和开发,和大家分享一些学习和开发心得. 首先是数据库的设计,这里是 按照产品的需 ...
- python 继承机制
继承机制经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想将现有类代码复制给新类.也就是说,通过继承这种机制,可以实现类的重复使用. class S ...
- 用Python实现根据角4点进行矩阵二维插值并画出伪彩色图
哈哈,题目取得这么绕,其实就是自己写了一个很渣的类似图像放大的算法.已知矩阵四周的4点,扩展成更大的矩阵,中间的元素值均匀插入,例如: 矩阵: 1 2 3 4 扩展成3x3的: 1 1.5 2 ...
- 浅谈openresty
浅谈openresty 为什么会有OpenResty? 我们都知道Nginx有很多的特性和好处,但是在Nginx上开发成了一个难题,Nginx模块需要用C开发,而且必须符合一系列复杂的规则,最重要的用 ...