CSP-J/S2025总结兼游记

J

T1

顺序开题,发现T1很顺手,直接一个桶完事,先写再说。

写完过了大样例,开T2。

T2

发现也很顺手,做做/%,判判奇偶性就行,但写完后过不了样例。

发现输出顺序错了,想测大样例发现没有,肉眼检查了几遍感觉良好,遂开T3。

T3

看题不认真(实则看到一半自己意淫出另一半直接开想)以为k值任意,卡了十来分钟,重新读题后一眼,直接记录一下前缀上一次出现的位置,那之前的最大值加1与当前位前一位答案取其大者即为当前位答案。

T4

看T4,看完题下意识想到固定最大值,然后求比其小的所有数中取数加和不大于最大值的方案数,总方案数减去其即可。

然后发现应该减去小于三条边的方案数。

然后发现应该把“加和不大于最大值又小于三条边”的方案数加回来。

写完以上发现小于三条边必然加和不大于最大值,于是回到原点。

求比其小的方案数可以使用背包,总方案数则为 $2^{比其小的个数}$

过了大样例。

检查

写完后发现还差两小时十分钟才结束,开始检查。

T1不必说,检查了一下文操直接过。

T2感觉自己做法足够暴了,没有对拍余地了。肉眼检查没发现问题,但是优化了一下写法,使得代码文件小了几字节(:。

T3本身就是一个优化暴力,而且我写一个不优化暴力细节还更多更容易错的暴力进行对拍的意义何在?遂放弃写对拍。肉眼观察了几遍,发现数组不够大和一个忘了的问题,只能说检查还是有效果的。

T4看了下感觉大样例强度还可以,应该没什么问题,肉眼检查了一遍感觉没问题。

估分

$100+100+100+100=400$

实际

$100+100+100+100=400$

午休

散步

jz 的自然环境那真叫好啊。有山有水,有禽有木。

抛开挂分的担忧和对下午的紧张,慢慢地走上那么一走应该说是相当舒服呢。

厕所

为了下午更好的状态,当然要排下便。

jz 的厕所设施上显然是比我们学校差上不少,但是或许是因为休息所用场馆那边的厕所没多少人去(连灯都是关的),所以无甚异味,令我稍能接受。

和moriartys老师闲聊

给老师安利了我和ferbianbian酱的三合一生日赛。

应该说老师对我们的期许还是比较高,竟然问我下午能不能AK。

我说不行,于是老师又问能不能300,我说与出题人对上电波就可以,老师大笑。

又聊了一些有的没的,老师要睡觉了,我便轻轻地走了开了。

cl闲聊

bibi酱可爱。
bibi酱可爱。
bibi酱可爱。
bibi酱可爱。
bibi酱可爱。

睡觉

睡前还发现了使用外套蒙住脸以规避灯光的 bianbian酱

睡觉时 cl 使用雨伞锤击椅背使我难以入睡,我让他往前一排敲。他将敲下去时发现了前面熟睡的DYGX主教练,怂了,于是继续锤击我的椅背。

结果就是直到最后也睡不着。

S

T1

先开T1,感觉和去年T1相比稍难,但也符合第一题的定位。

注意到不合法社团个数$\le1$,且有一个社团为 $\frac{n}{2}$ 个时其他社团必也合法。

于是考虑先将所有的人塞到其最想进的社团,再将超过最想进次想进的满意度作差排序,将人数 $\gt\frac{n}{2}$ 的社团里最差最小的 $(人数-\frac{n}{2})$ 个人搞出去即可。

过了大样例。

T2

容易想到枚举城市的建立情况然后跑最小生成树,但这是$\mathcal{O}((2^k+log_2(kn))\times (m+kn)+)$ 的,并过不了。于是在最开始跑一遍最小生成树,将不需要的边直接删去(不会证,但是感性理解下是很对的)。那边数变为 $n-1$,可以通过。

但跑大样例时有些慢,$1.3$ 秒左右,加了个快读就只需 $0.6$ 秒。

T3

暴力一

先打了一个暴力,思路是直接对于一个 $t$ 从其所有位开始往后匹配,如果枚举到的那一位前一位不同就跳出。

复杂度是 $\mathcal{O}(|T|^2)$,但赛时不知道为什么就是觉得能过 $q=1$,直到最后10分钟检查时才发现过不了,而且没判 $t_1,t_2$长度不等,感觉是没多少分了。

暴力二

考试时有一个多小时在磕这题的性质 $B$:
思路是将中间不为全 a 的序列记下,将其左边全为 a 的个数与右边全为 a 的个数放入相应序列的 vector

将所有 vector 按左边个数排序,再将前若干位的右边个数使用个维护值域的主席树维护,即可在查询时快速求得合法替换的个数。

可惜的是码力欠佳,整场过去调不出来。

T4

打了 $s$ 全为 $1$ 的点(性质A),预计 $20$ 分。

赛后想起自己读入有问题,但对于性质A的数据而言没有影响。

在同学提醒下发现 $c$ 可以为 $0$,但赛场上是按照全 $\geq1$ 写的,遂大概率暴零。

估分

$100+100+[0,20)+0=[200,220)$

而且前两题没写对拍,大概率挂分。

就算不挂分也没去年高了,心里五味杂陈。

moriartys sensei,我辜负了您的信任,我是罪人呜呜呜。

实际

$100+80+90+0=270$

第二题挂了,不理解,看了看云斗是能过的,可能CCF机子比较慢吧。

事实上我T3暴力一在随机数据下的期望复杂度是 $(\sum_{i=0}{|T|}\frac{1}{26{i}}) |T|$ 。
其实很小,但是如果刻意卡的话是很容易到 $|T|^{2}$ 的。
hack大概如下:
s:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaab

t和s一样,然后 t 和 s 都为一个,长度极限即可卡掉我的代码。

总结与教训

不能轻视暴力和特判!一定要看清题目,不能因为是暴力就不仔细,要把暴力以正解的态度打才能拿到应得的分数!

看题一定要仔细,不能再因为理解错题目含义而浪费时间。

一些显而易见的小结论要下意识的处理,不能因为不能一眼望到正解就弃之不理。

总之

明年,我要一雪前耻!

posted @ 2025-11-08 23:12  hyxigg  阅读(1)  评论(0)    收藏  举报