这么久了还是想写个博客,其实复赛第五没有想象中那么遗憾,虽然那天晚上自己还是比较伤心。回想整个过程,自己的代码确实没有超哥,凯神优秀。
从费用流输掉的那个acm青岛站,必须要从费用流赢回来。
我到底算不算超越了自己?我觉得只是比以前勇敢了
打acm时调不出来时经常孤独,失望。但是这次我1个多月一直坚持打下来了,不管有没有队友的帮助,不管是不是有算法要大改。
宣传下我的github,源码上面有 = =
github.com/Basasuya
赛题解法就是启发式+费用流。
初赛一开始我使用了一种奇葩方法 = =,不再赘述,放在Huawei文件夹
之后排名大跌,所以决定大改,我分别尝试了主流的模拟退火和遗传
效果还是不太好
我突发奇想,把模拟退火和遗传合在一起,效率立马提高,当时还得过一小段时间第一名。之后就没怎么改了,初赛也只有25名。
复赛前休息了一段时间,把Ng的机器学习课程看完了。之后我仔细思考了自己的算法,对退火过程进行了大改,去掉了加点操作,只有删点,由于复赛规模太大就去掉了遗传部分。其实当时的代码效率也不是很行,和第一名也有10多分差距,之后和队友讨论出来用定档次的方法,一开始设的档次得当,答案会好很多,提高立马进入前4。
复赛前我们还加了先网络流后费用流的方法,因为很多时候此时状态不漫流的(大约2:1 不满流:漫流),所以这样先用网络流判断满不满流,再做费用流效率又会还很多。
最后还是比较遗憾,之前的练习赛我们还是能进前4,我们的算法跑小档次更优秀,相比超哥的代码来说,他们大档次更好。不过回想那天晚上最后几发为什么不多改一下,想想怎样更适应大档次呢?终归还是太嫩。
总结就写这么多,最后还是希望自己今年考研能梦想成真。
自己选的路,跪着必须走到