51Nod 算法马拉松22 开黑记

时间:2022-08-06 18:50:26

这是一场惨烈的开黑大战,始于全机房开黑指望刷进rank前十拿钱的壮志,终于被各路神犇怒踩成rank20,差点200点头盾不保的落魄,想起将近一年前ad和zcg等学长挤进rank10的壮举,不由得唏嘘,我好菜啊……

作为我方的MVP,我就写写这次开黑大战的经历吧……

星期四的时候51Nod大翻车,本来应该周五开始的比赛不小心设成周四开始了,虽然一分多钟之后就关了,不过我正好把后五题都留着了,就把题面存了起来让全机房一块看(然而并没有人去看……包括我……)。

星期五的时候比赛重新开始,结果开场不久就有人A后几题,看来看见题面的不止我们这几个人啊……决定这次马拉松要开黑,所有人分工去写六道题,最后代码统一交给lrz(毕竟他排名比较高),然后大家就开始去刚自己有思路的题了。

一开始准备刚一下F题,以为是序列自动机的应用,然而画了一会儿之后发现序列自动机是匹配一个串的子串和另一个串的子序列,然后就没思路了,放弃去看别的题。

大概看了一会儿之后锁定在E题上,发现题目要求以出现次数排序,想起来Noip之前自己出的一道题(NT应该见过,每次询问区间中出现次数第k多的数),那道题是以出现次数为关键字维护平衡树,本题可以如法炮制,平衡树启发式合并维护即可。

反正都开黑了,目标是尽一切手段冲rank前十,就没有现写splay,从普通平衡树那儿粘了一个板子(后来发现有一个小地方写挂了,这都能过普通平衡树……),码完250行代码之后开始调,然而没一会儿就该回宿舍了……

在我写E的时候旁边的lrd在搞B题,听说写了个高消求初始方案+SPFA更新答案,然后被一个小点卡住了(其余测试点都是不到31ms过的),二分得出范围是5,然而也没时间打暴搜就回宿舍了……ztc在回宿舍10min之前切掉了A题,拿到了第一滴血,第二天早上来了之后lrz就把代码交上去了。

早上继续调,早饭都没去吃,托lrz给我捎了点吃的……

早饭之后lpx用他的方法把B切掉了,紧接着lrd写了个暴搜把那个点过了,然后lpx就把代码给了lrz,然而只A掉A题和B题的排名是很低的……

我犯的其实都是些比较隐蔽的错误,后来A了很多点但是还是有一半的测试点炸内存了,还有几个点TLE,以为是卡常数+卡指针,后来调了很久才发现是一个地方应该把两个map swap一下,但是我直接赋值了,复杂度不对,并且没把原来的那个删掉,然后就炸内存了……改掉之后又调整了一下内存池大小才勉强2300ms左右飞过(当时机房好几个人都在看我评测,A了之后半个机房都沸腾了……),然而把代码给了lrz之后他只跑了1600+ms……

A掉E题之后lrz瞬间升到了rank10,然而没过很久就被dalao们挤到rank11了,感觉不太妙,就去刚D题,想了大概20min+发现了那个结论,写了一发01-Trie,然而后面的点一直WA,然后发现是求无向完全图生成树计数的部分写错了,正准备手动推式子,lrd喊了一声去查OEIS,然后就带着前几项1,3,16去查了,正好第一个就是……然而英文不太好表示有点怀疑,然后去查百度,在一个CSDN里看见了答案就是$n^{n-2}$,和OEIS一致……把这个部分改了就过掉了,lrz交了之后从rank12升到了rank9……

后来大家都在尝试刚掉C题和F题,然而C题根本一点思路都没有,F题我搞了很久也没思路,*弃坑……然而不久就被挤出前十了,并且并没有什么办法补救……

后来,截止到比赛结束的时候,被挤到了rank20,差点连200点头盾都保不住了……

51Nod 算法马拉松22 开黑记

总的贡献是这样的:

ztc:A(40)

lpx&lrd:B(80)

我:D(160)+E(320)=480(装B

这次的开黑经历可谓是惨啊……被神犇们D的好惨……

看来还是需要提升实力,下次马拉松再开黑一次……我的动力就是钱