仙人矢豆
2024-12-02 22:04:18
比赛之外的部分之后更。
因为要赶传奇 lab2 所以昨晚零点之后才睡,起来的时候觉得很困。吃早饭的时候遇到了 aw,和他打了招呼。
到了场馆之后才发现开始时间是 9:30 而不是 9:00,于是加睡。
开场我上机先把头文件写了,X 和 N 找签到题。我写完之后,N 说他觉得 C 题简单。我看了一眼,觉得求出轮数然后把过程倒过来就可以求出答案。但是我被首杀冲昏了头脑,竟然认为直接模拟的时间复杂度是对的。于是我写了一发,交上去之后发现 wa 了。
此时发现有队伍过了 M 和 J,于是两个队友分别去想这两道题。X 说他会 M 了,于是我把机位让给他。N 跟我讲了 J 的题意,并说他有一个想法,想让我检查一下。我听了之后觉得很对啊!X 的 M wa 了,于是我就上机写 J。代码很短,只需要求逆序对个数,但是交上去又 wa 了。
X 说他意识到 M 的错误了,于是再次换他上机。我和 N 继续讨论 J,发现有个 case 没判,于是把键盘抢过来改了一下,但是又 wa 了。为了以防万一我把题面拿出来自己读了一遍,发现居然读错题了!我们原本以为 Alice 只能交换相邻的位置,但是实际上可以交换任意两个不同的位置。好在思路大差不差,我们改了一个做法出来。X 的 M 又 wa 了,于是换我写 J。写完之后点击提交,心想总该过了吧,可是屏幕上的灰字又一次变成红色。
随之变红的是我。我注意到我在关闭流同步的同时混用了 printf
和 cout
,于是把前者改掉了,再次提交。为什么依然是 wa 呢?我非常不解。X 声称他对于一种情况需要打表求出答案,于是又一次让他上机。我和 N 细致地检查了每个 case,终于发现还要特判
但是此时的罚时已经寄完了,我们只能靠题数获胜。我返回看 C,注意到之前那发提交竟然是 tle 而不是 wa。我立马意识到了问题,把直接模拟改成整除分块,果然过了。
现在终于算是松了一口气。但是出现了一个非常严重的问题——刺眼的阳光透过场馆的窗户,直接照射到了我们队(以及左右两支队伍)的桌面和电脑屏幕上。放眼望去,整个场馆只有我们这块地方是亮的。尝试询问志愿者,但是心里其实比较清楚解决这个问题的可能性十分渺茫——因为窗户太高了。志愿者给了我们一把伞,但是显然无济于事,我们只能等待太阳继续升高。
剩下的题目中过得最多的是 H,之后是 L 和 G。在我写 C 的过程中 X 和 N 貌似已经把 H 编出来了,于是 X 马上接着上机。我和 N 继续分头想 L 和 G。L 我有一些想法,但是和 N 讨论之后被他毙掉了。在 N 给出的反例的引导下,我又编出来一个看起来很对的做法,和 N 讲了一会儿之后他也理解了并觉得是正确的。X 的 H 在神秘 wa 了一发之后过掉了,于是换我上机写 L,X 和 N 想 G。实际上 L 的代码远比我想像得简单,十几行写完了。第一发提交 wa 了,修了一个小 bug 之后过了。
G 的进展并不顺利。X 过 H 到我上机之前我让 X 打了个表,但是并没有什么发现;听了 X 和 N 目前的做法之后也觉得一头雾水,于是我决定去上个厕所。路上我想到热身赛的 C 题,意识到答案肯定不大于
X 在写 G 时我和 N 继续看 EF。由于 E 过的人多一些,并且其是交互,我决定先想 E。看完题之后我觉得很迷惑——这不是直接枚举所有合法路径,加入线性基,再解方程就结束了?时间复杂度是 YES
wa 了一发之后,我们顺利通过。
下机之后无题可写了。X 说 F 题的答案就是 unordered_map
改成 gp_hash_table
之后只要 1.8 秒了,于是果断提交,但是 tle 了。未必评测机开了 -O2
之后比本机跑得还要慢啊?我只得继续卡常。首先我发现 dp 值都很小,于是把 i64
改成了 int
,但是收效甚微。之后我注意到,如果确定某个转移到对状态不可能继续转移的话,就不必将其加入哈希表了。改了这个之后立马跑到 0.6 秒,交上去果然过了。
终于暂时进前十了,但是只剩一个小时多一点点的时间了。此时需要决定是集中力量做 B 还是 D。我们最后还是因为过题队伍数量选择了 B。我和 X 意识到一个区间只要不是一段右括号 + 一段左括号就一定寄了。那么这题就就简单了啊!直接线段树 + 哈希即可。但是代码十分难写。我在还有 40min 的时候开始写,到最后 5min 才刚刚写完。我们决定编译通过之后直接提交,结果是不出所料的没有通过。
听讲题,感觉 D 并不困难啊!要是想 D 说不定就赢了。打星队里貌似谁都没打赢:哥哥自不必说,洛谷队和小粉兔队也都在我们之上,还有一个不知道什么成分的队伍。不过有一说一,封榜过三题确实厉害。感觉这场就是实力差距啊,要是开场没有那么唐或者封榜后过一个题,都能获得高得多的排名。