Loading

CSP2023游记

-20天

等了三年了,要是这次没考好,我就完蛋了……

怎么说呢?又期待又恐惧,一些都随缘吧……

21年砸了,22年没考,希望23年可以幸运一点。加油 CSP2023 _

CSP-J

上午考的j,没什么写的,大概是AK了。不过快11:00时,我以为是11:00(记错了),当时刚好t4写完,就特别着急,但是看别人还作答着呢,才想起了……

T4也是有点难度,我差不多想了20分钟。先假设\(a_i = 0\)\(dp_{i,j}\)表示到点i,时间模的值k为j时的最短时间,然后bfs就可以了。当\(a_i\)不为0时,例如从u到v,那么到u的时间晚一点才可以通过这条边,把\(dp_{i,j}\)只能加上k的整倍数(如果不是的话,就不能满足下标j),那刚好让到达出发点的时间晚k时刻,不就好了。假如还不够,可以继续加,不过程序里不是这么用while,直接算出差就可以。

赛后想了想,我T4用的是queue,相当于SPFA,官方数据应该会卡SPFA。

CSP-S

什么狗屁题

开赛10分钟,把题读了。

读完题就做了T1。我先通过用第一个转换的状态,求出所有可能的正确密码,然后再分别检验是否正确。不过看起来很容易的思路,我大概写了100多行。T1总共用了20分钟。

接着就开始看T2,想出了区间dp,\(O(n^3)\),的算法,不过有常数上优化,\(n\leq800\)应该可以过。

虽然T2已经想出部分分的做法,但我没有写,接着看T3。我一看是一道大模拟,因为上午考的J的T3也是一道模拟,我还做出来了,所以我对这道题十分自信。

我开始做这道题,但万万没想到我花了将近1个小时的时间才完成了这将近200行的代码。像这种大模拟,最可怕的就是bug和debug,不出所料,我连小样例都没有过……

当时我特别着急,我那一刻都感觉自己要完蛋了,花了两小时才做完一道题。于是我就去卫生间沉淀了一下,我想我应该把这道题放下,试试看看别的题。我又重复看了T2,还是没思路,后来我先想着把T4看了,不看不知道一看吓一跳,我以为T4的难度和往年T4难度一样,但是我想了几秒就想出来了。

先二分答案,在check这个答案是否成立时,先算出每个点最晚哪天种树才能在最后一天长的够高,这个也用二分算。假设这个值为\(p_i\),然后再dfs,p[i] = min(p[i], p[son] + 1),接着对于 \(p_i\) 排序,假如出现了 \(p_i < i\) 的情况,那么这个答案不成立。这个算法复杂度 \(O(n\log^2 MAXANS)\),我当时以为 \(MAXANS \leq 10^{18}\),假如这样的话肯定过不了,想了半天才看见题目里写了“答案不超过\(10^9\)”。

T4实现加debug花了1小时,此时比赛一小时,接着我继续debugT3,花了有半小时,小样例终于过了,但是大样例还是没过。

最后半小时,我也知道我debug不了T3了,我就开始写T2的部分分。写完了就继续debug……

还有10分钟结束时,我都快要哭了……

总结

S我大部分时间都花在T3上,两个多小时,而且连大样例都没过,我本来可以用这些时间做别的事情。我可以花一小时写一个T3部分分的代码,说不定比我两个小时写的分还高。剩下一小时可以想一想T2,说不定可以想出正解。

我不怎么擅长模拟,特别是debug,像这种200多行的代码可能需要两三个小时debug。

在Luogu上测完了。csp-j 100-100-100-25,csp-s 100-35-0-85。T3崩溃死了,搞了两个小时还爆0了……

这个分数离我想的300+,还是有很大距离。不过我还是挺满意的,实际上,我可能考的更差,假如按我以前的思想,我会一直卡在T3上,那么结果可能就是 100-0-50-0。

从我打出第一个Hello World!,到现在将近1000天了,我也不后悔走OI这条路。

10.29

查完分了。csp-j 100-100-100-50,csp-s 100-35-0-95,没想到官方数据比洛谷还水。

posted @ 2024-08-09 16:54  larsr  阅读(44)  评论(0)    收藏  举报