摘要
3人场,队友过了8题,我只负责贡献罚时
大佬们只需要负责A题就行了,而战犯要考虑的可就多了。
签到
吸取了但没完全吸取CCPC网络赛和ICPC网络赛第一场的502、503、404等教训,PTA决定比赛的前三分钟只有主机位能看题,其他两个机位禁止进入系统。这次确实没有出现卡顿。
前三分钟3人看A,然后我被A题冗长的题面吓退。
然后副机进入系统,发现F有人过,强大的fyc发现F是大水题,于是写,WA,发现题面理解有误,AC。
我随机点进L,感觉L很可做但我想了半天也不会,此时fyc发现J排个序就行了,AC。
然后我推了下L的式子,和强大的fyc讨论要不要三分这个式子,fyc让我进一步化简,然后发现是个对勾函数,AC。
在此期间,强大的队友们AC了A、I。我AC L后强大的Dew会了G,并去写G。
战犯
此时所有没开的题都是个位通过人数。我去看了一下C但完全没看懂题,所以去看通过人数稍多一点的E。E的题面很长,但看完题并听到旁边队伍的讨论之后我和强大的fyc很快就搞出了两次奇偶性bfs的做法。正好我在多校时刚写过一遍奇偶性bfs,所以让我去写E。我很快写完E(在写E的过程中听到旁边的队伍AC了E),交,WA。于是虚拟打印,把机位留给想写C的Dew。
我和fyc一起看我E的代码,看了几遍也没找出bug,改了一些实现细节交上去,不出意外又WA。Dew建议我们再看一下题面以防题意理解有误,于是我们重新看题+问出题人问题,最后确定了题意理解是正确的。
此时Dew发现自己C题的做法假了,于是下机思考C并让fyc重写E题(Dew:把原来的代码忘掉)。然后fyc用前向星写了一遍(我用的vector),仍旧WA。
此时E题的通过人数越来越多,但我和fyc完全看不出任何一份代码的任何一个问题,一度怀疑数据有问题。此时强大的Dew会了C的正解,抓我当小黄鸭然而我连C题题意都不清楚,去写C。
强大的Dew AC了C题。我和fyc debug E很是红温,于是也抽空想想K题。
然后强大的Dew在我和fyc的建议下又写了一遍E,然后 把 E AC 了。
破案
此时离比赛结束只有20min,此时我虽然想出了K的拆位递归做法,但K题$n=200$,时限1秒,而我不知道怎么把复杂度降到$O(n^3)$,预计无法在比赛结束前通过K。
于是三人一起找不同。最显而易见的不同是Dew使用了Dijkstra而其他人使用了bfs,但在边权为1的情况下两者答案没有区别。此外大家就只能看出变量名的区别了。
终于在比赛结束前1分钟我发现了问题:题目要求输出一条从1到n的最短合法路径,但最短合法路径不一定是简单路径,所以跳前驱时不能到1号点就停止,而应该走完全部长度。
。。。。。。
( fyc:我为了实现出区别,特意把while(1)
改成了while(x!=1)
)
后续
强大的Dew发现只有自己的代码是$O(n)$的,而其他人的代码都是$\Omega(n\log n)$的。后来有人发现C题的$O(n)$做法是CF的原,难度3300。Orz Dew。
我怎么也想不出K的$O(n^3)$做法,然后题解告诉我正解是$O(n^4)$的,由于常数小可以$n^4$1秒过200???