3.14-3.27,历经两个周,终于是落下帷幕了。最后成绩虽然还没出,但是最多也就是个谢谢参与奖了。整理一下比赛以来学到的新东西吧。
-
3.14之前
先把C++ STL库的东西大概了解了一下,但是不深,也不怎么会应用。
??????概述 – C++ STL Tutorial (gitbook.io)
还根据目前的赛题简介稍微猜一猜是流量控制,还去看了相关的视频
陌陌直播智能CDN调度系统实践之路
-
3.14初赛赛题公布
根据赛题整理了一下数据结构,分别是客户节点、边缘节点、服务质量。然后想到的最简单粗暴的方法就是遍历客户节点,遇到满足条件的边缘节点就分配。
但是就这版暴力写了有三五天orz因为不会读取csv文件和ini文件,也不会写入txt文件,都是一点一点百度查的
C/C++读写csv文件(用getline探测逗 分隔符) – findumars – 博客园 (cnblogs.com)
(23条消息) c++中 string 和 int 类型转换_凉冰难消一腔热血的博客-CSDN博客_c++ string转int
c++写入txt文件 – morein2008 – 博客园 (cnblogs.com)
后来读取csv文件和写入txt文件都学会了,但还是不会读ini文件。搜了很多很多,大都是要写一个读取配置文件的类,但我看不懂orz,后来看群里有人说直接从文件流中搜索读取,我也就这么干了。
(23条消息) c++截取字符串_cary516843761的博客-CSDN博客_c++截取字符串
到这里终于能读取能写入了,线下数据集也跑的很流畅,但是线上一直分配不合法。没有办法,只好学习怎么在linux上调试C++。然后就发现了wsl,本来想安装clion,但是安装失败,后来又发现vscode可以在wsl上调试,所以后期一直用vscode进行调试
(23条消息) 史上最全的WSL安装教程_金士顿的博客-CSDN博客_wsl安装
Windows10自带Linux系统(WSL)安装过程 – 简书 (jianshu.com)
(23条消息) 使用vs code和wsl搭建C/C++开发环境_coxlong的博客-CSDN博客_wsl2和vscode
群里大佬说linux和windows中的换行符不同,在wsl上一调试,果然是的,后来是借鉴的大佬用字符串的erase()方法
这时候终于提交成功了
后来队友说按照边缘节点的剩余带宽的比例分配
当时我也想到说平均分,在实现完按比例之前我也尝试了一下平均分,后来发现不如按比例的成本低
因为题目中是以95%位带宽作为成本,所以我想应该是5%尽量大,95%平均分是最后要达到的目的。但是怎么跑满5%我是真的不知道。后来群里大佬也说尽量把5%分一分,于是我想把每个边缘节点的5%暴力跑满,跑满5%之后再按比例去分剩下的。
但实现之后效果很差,可能是没有把5%跑满的关系。当时上传的已经忘记是哪个了,但效果不好是记得的。
这个时候初赛时间已经快要截止了。
-
3.25正式赛
正式赛我先把按比例分传了上去,结果一直分配方案不合法
看群里大佬说是因为正式赛的数据集中三个文件的节点顺序不一致(这里就要提一句,我在群里提问的时候问“依赖于数据节点顺序会不会导致编译错误”官方回答不会导致编译错误,我当时就觉得不对我应该问会不会导致失败,而且官方这么回答说明一定有问题,果然)
所以后来又去学了unordered_map,之前完全不会
然后写出了一版暴力
然后是按比例
又再次尝试了拉满5%
应该是这个,跟按比例和暴力相比效果很差
后来想到说迭代,哪个结果好取哪个,但是实在不会写。其实我之前就想用遗传算法(在此感谢本科老师) 来求解,但是不知道该怎么去随机生成初始解,也不知道该怎么去变异。交叉运算倒是还好,只要交换两个解的某时刻的分配表就可以,但是变异实在不知道怎么变异。
最后一天去随机
然后去迭代,不过我的迭代也只是随机,而不是朝着最优解去迭代
迭代有很多次错误,有的是很小的那种(当时觉得就我这个马虎劲儿以后做后端的话可能会被Bug气死),浪费了很多次机会
但后来运行成功的两次跟之前的按比例几乎一样。
很不理解,明明在线下的时候效果是比按比例好的,而且也确实迭代了多次取了最优解。我现在非常怀疑他根本没有去随机,只做了第二步的按比例。但不知道到底是什么原因。难道是我没有引入time库p>
-
3.27 18:00
结束了,最后成绩就是按比例
大佬们太强了
85也许还会往下掉,但对于我们一开始的目标来说,还行吧。
这次比赛我最大的收获大概就是原来我可以。不要害怕失败,也不要害怕沉没成本,你一定能在其中有所收获的。
总结一下参加华为软挑需要学习的东西吧(C++)
- STL
- 各种优化算法(遗传模拟退火粒子群禁忌搜索等等)
- 贪心动态规划
- 刷leetcode应该是有点用的
留一个github的位置
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!