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

2024-04-29 02:38

本文主要是介绍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准备如何苟进复赛圈?华为软挑开挂指南(附赛题预测)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944917

相关文章

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

Java 队列Queue从原理到实战指南

《Java队列Queue从原理到实战指南》本文介绍了Java中队列(Queue)的底层实现、常见方法及其区别,通过LinkedList和ArrayDeque的实现,以及循环队列的概念,展示了如何高效... 目录一、队列的认识队列的底层与集合框架常见的队列方法插入元素方法对比(add和offer)移除元素方法

精准寻车+鸿蒙有礼特别版均已上线! 华为鸿蒙HarmonyOS 6负一屏新升级

《精准寻车+鸿蒙有礼特别版均已上线!华为鸿蒙HarmonyOS6负一屏新升级》不少朋友升级华为鸿蒙HarmonyOS6后,发现华为负一屏此次也新增了精准寻车功能,还为过往鸿蒙5.1及以上用户再度... 最近科技圈热议话题当属华为全新发布的Mate 80系列,这次不仅有全金属机身,第二代红枫影像和全新麒麟新品

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

C#实现插入与删除Word文档目录的完整指南

《C#实现插入与删除Word文档目录的完整指南》在日常的办公自动化或文档处理场景中,Word文档的目录扮演着至关重要的角色,本文将深入探讨如何利用强大的第三方库Spire.Docfor.NET,在C#... 目录Spire.Doc for .NET 库:Word 文档处理利器自动化生成:C# 插入 Word

Python列表去重的9种方法终极指南

《Python列表去重的9种方法终极指南》在Python开发中,列表去重是一个常见需求,尤其当需要保留元素原始顺序时,本文为大家详细介绍了Python列表去重的9种方法,感兴趣的小伙伴可以了解下... 目录第一章:python列表去重保持顺序方法概述使用字典去重(Python 3.7+)使用集合辅助遍历性能

在SpringBoot+MyBatis项目中实现MySQL读写分离的实战指南

《在SpringBoot+MyBatis项目中实现MySQL读写分离的实战指南》在SpringBoot和MyBatis项目中实现MySQL读写分离,主要有两种思路:一种是在应用层通过代码和配置手动控制... 目录如何选择实现方案核心实现:应用层手动分离实施中的关键问题与解决方案总结在Spring Boot和

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

交换机救命命令手册! 思科交换机排障命令汇总指南

《交换机救命命令手册!思科交换机排障命令汇总指南》在交换机配置与故障排查过程中,总会遇到那些“关键时刻靠得住的命令”,今天我们就来分享一份思科双实战命令手册... 目录1. 基础系统诊断2. 接口与链路诊断3. L2切换排障4. L3路由与转发5. 高级调试与日志6. 性能与QoS7. 安全与DHCP8.