2022 ICPC 济南总结

鸽子回笼了
颓废的下午,不想干活,写点东西。
好不容易打个ICPC的Au,简单记录一下。

day-k

打之前想着 没准下学期就退役了,这搞不好就是生涯最后一场regional,所以其实还蛮紧张的。
毕竟我们这玄学队伍,能够在有仨CCPC金牌的情况下,连拿六个ICPC银牌,很难不怀疑是被套上了什么奇怪的ICPC降智buff。
甚至考虑过下赛季改名换一换运势(bushi

day0

热身赛我直接没去(
我记得ghj赛前说,那天热身赛他可能要早退。
于是我就说 要不不去了吧!
于是我就没去。
一觉醒来发觉群里有人at我,这下出事了.jpg

day1

这次的读题顺序不同于以往,因为刚开场的时候,卢姥爷上撤硕去了(
我abcd,然后ghj好像是最后四个题。
开局一个A,看了一会儿,发现一个性质就是 一定先除在加减,然后怎么搞好像不是很会,标记为可能可做,跳。
然后一个B,第一眼以为是辣鸡数学讨论题,直接润了。
然后一个C,一大股背包味儿,但是一时间没想到有什么解,也跳了。

此时ghj已经切了俩签到了。

看榜发觉E好像很可做,卢姥爷发觉他好像会C,就去一边儿自己推去了。我被ghj抓去读E之后,闻到了就是一股不定方程味儿,和ghj商量了一下,决定写一个EXGDC + 奇怪的调整,和他同步了一下做法,确认一致之后,就扔给他了,我去玩我的大模拟。

在E的时候 看榜发觉隔壁骗分把A过了,我一时间没什么好的想法,跑了一趟厕所,猜了个结论,就是最后的target一定在某个数/2 /2 /2的路上。

等ghj写完了E,俩人一合计,好像没错。强行把卢姥爷从他的背包上TimerInterrupt出来,让他看了看,这性质好像也没错,那叉不掉的就是对的。

于是就基于这个性质编了一个做法,目测复杂度是 N 2 l o g 2 N N^2log^2N N2log2N的,简单讲一下复杂度的组成, N N N个数字,每个一路除二,一共命中 N l o g N NlogN NlogN个数字,称为答案候选人们。
对于每个答案候选人,计算所有数字的代价。每一个候选人会造成 N l o g N NlogN NlogN的代价,因为对于每个数字要枚举除二次数。
这里再花一个 N l o g N NlogN NlogN对于所有的cost进行排序,或者维护一个堆(什么LeetCode的TOPK)
所以一共 N 2 l o g 2 N N^2log^2N N2log2N,跑500,很合理。

编出这个做法之后,扔给ghj了,我就去玩我的大模拟去了。

大模拟玩到一半发觉有点难受,从一堆问号里面选出若干个来当AC,这个选法好像有点要命。

尬住的时候,ghj成功过掉了A题,然后我和ghj一起读大模拟,卢姥爷玩背包。
猛然发觉好像不是很用直接选出若干个,可以枚举。毕竟 C 13 6 C_{13}^6 C136也没多大,肯定小于 2 13 2 \frac {2^{13}}{2} 2213。找机上的卢姥爷问了问,他服用了一下自己的jc和inv,好像是一千多,那不是稳得一匹.jpg

和ghj编了一个dfs枚举的做法,然后处理了一下钦定罚时这里的细节,在掐掉他的假做法之后,提出了应罚尽罚方案。

合计了一下做法,粗估了一下复杂度之后,感觉不是很能扔给ghj一个人,再加上我手头也没什么事情干了,于是就来当监工了。

然后一发过,写代码认准ghj.jpg

给卢姥爷的背包喂了点样例,发觉没啥问题,就交了,然后寄了。

试图重置,ghj重置途中,卢姥爷发觉他好像01背包写成完全背包了,改了改,又被我喂了一大把样例,就过了。

此时还有差不离俩小时,仨人对着场上唯一一个看上去可做的DS开始抠脑壳。

我犯了个巨大的蠢,把查询归类为“下标区间内,权值区间内,下标区间信息”

甚至编出了一个单次查询log^3的优秀做法,完全没有意识到那个权值区间是单边有界的,所以只用维护min和max就行。

得亏ghj看出来了。

然后先写了个一共log^3的玩意儿,T了。

卢姥爷给了个 在线段树里加个banTag的做法,log^2但是大常数,ghj写了,T了。

ghj推了个阳间的树上二分,过了。

然后开摆。

你可能感兴趣的:(程序人生)