2017华为软件精英挑战赛--总结

2017华为软件精英挑战赛–总结

     比赛已经落下帷幕。尽管最后没能进到64强,但从最开始的啥也不懂,到最后西北赛区91名,我尽力了,尽管还是有很多的不甘心。把这近一个月的辛酸历程做一个总结吧,也算是对自己有一个交代了。

     3.4日,官方正式公布赛题。之前对华为软赛只是有所未闻,并为真正去了解过,所以一开始也并没有准备参赛,只是草草的看了一下赛题(并没有读懂赛题),加上手头上也还有事没做完,想着把事情一件一件做好。真正开始做软赛是在3.8日,抱着锻炼自己的算法能力的初衷开始做比赛了,此前对算法基本上是一张白纸,我已经能够预见接下来的这段时间势必会遇到很多困难,但是只要我一旦决定要去完成一件事后,我就会尽百分之百的努力去做好。

     花了一个上午把赛题(大视频时代-布局)仔仔细细读了一遍,知道题目是要在网络拓扑中设计寻找最优的服务器部署方案:在满足所有消费节点带宽消耗需求的前提下,使得耗费总成本(服务器部署成本+带宽租用成本)最低。尽管读懂题目后,还是一头雾水,根本不知道从哪儿开始下手。我去请教了实验室一个研三的师兄,师兄说:1、先去网上找相关的资源,所有的程序从头到尾全是自己写的话在一个月这么短的时间根本来不及;2、先编程序,边想边写,不要等到把所有的算法都想出来了才开始写,不然等你想出来了,已经没有时间写代码了;3、网络图一般都是图论中的知识点,把图论的书看一遍也来不及了,你需要用得到什么就去里面看什么,一般最短路径问题常用的方法有广度优先搜索、dijkstra算法。

     有一点方向,总比茫然好,尽管我不知道dijkstra算法对这个题目有没有用。然后我就去图书馆借了两本图论的书,找到里面的dijkstra最短路算法,用了差不多两天的时间去读懂和实现这个算法。在实现过程也遇到了困难:通过遍历得到最小值后怎么确定前驱节点;输出经遍后是从终点到起点的,刚开始是用数组存放然后输出的,后面知道了用堆栈存放刚好符合这个特点。理解dijkstra算法后,发现和题目并没有什么联系,我又在网上搜看有没有大佬分享一些经验,在知乎上找到了一个帖子说这是一个NP-Hard问题,是facility location问题,然后还是一脸蒙圈,不知所云,到后来才知道说的全是对的。然后我在软赛交流群里看到有人说可能是背包问题,我又去了解了背包问题,发现也不能解决题目的问题。在走投无路的情况下,我试着在软赛交流群里去私信一些看起来像大佬的人,问问他们的思路,本来不抱有任何希望,但真有人回复了我,说是网络流的问题。尽管只是一句简单的提示,我向他表示了万分感谢。我去了解了网络流中的最大流问题和最小费用最大流后,发现正是题目所对应的问题。经过了差不多一周的折腾,才找准了方向。一个人去面对问题,才知道困难远比想象的多。

     接下来就是去解决网络流中的最大流问题和最小费用最大流问题了。由于之前的数据结构和算法的功底太差,看了好久才把算法思路看懂。在最小费用最大流

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值