CSP 2023 游寄

发布时间 2023-11-01 17:15:29作者: No_Play_Yes_Splay

Day \(-??\)

初赛游记:here

Day \(1\)

\(7\) 点钟,起来了。md 真不想考 J 组啊

大概 \(7:35\) 就到 \(\text{GDFZ}\) 了,但是 \(8\) 点才进学校。

\(\text{J}\)

进考场,坐在位置上看说明。

\(8:27\) 发密码了,然鹅写的不清楚输半天才输对

开场直接倒序开题。D 想了一会,没什么思路,先去看 C。

C 是模拟题,大概半个小时就切了。

然后又不到半个小时把 AB 干没了。

看了一下时间还不到十点,于是决定玩一会迷惑行为。

在注释里写了 f*ck CCF 一首《成都》,一首 《Never gonna give you up》,一个写错的 freopen,一个 CF 的 全 FST 记录当然是假的,好几条 CSP-S RP=(__uint128_t)(-1),还留了一个洛谷 UID。

然后去想 D 题。没一会发现是一个多维 Dij,也秒了。

然后跑大样例。没开 -O2 跑了 \(720\operatorname{ms}\),开了 -O2 \(120\operatorname{ms}\)。/yun

然后又在迷惑行为里加了上面说的。

然后罚坐。

估分:\(100+100+100+100=400\)

实际:\(100+100+100+100=400\)

\(\text{noon break}\)

去学校附近找了一个地方吃午饭。然后要上厕所,结果跑了几百米,跑到医院才找到公厕。

然后吃了点零食,听了一会歌。

大概两点,又进到了学校里。

\(\text{S}\)

\(\text{S}\) 组座位号:\(4\) 号考场信息楼 \(404\),座位号 \(44\)米四达:WTF!

\(14:27\) 解压密码 get。

先看 A,啊????\(\text{CSP-S}\) 出了道 \(\text{Div. 2 A}\),就离谱!!!

然后第二题就直接变成 F 了。

然后不到半小时切了,开始看后三题。

看 B,没什么思路。

看 C,WC,大模拟。又回去想 B 了。

想了一会,然后搞出来一个做法。

然后样例 2 直接错得离谱。一想,做法假了。又去看 C。

C 题码了半个小时,感觉要在赛时调出来已经超出了我的能力范围。

于是又回去想 B。

想到递推,令 \(dp_i\) 表示从 \(i\) 开始的可消除的子串的个数。

然后考虑找出其中最短的一个,设其为 \(s_i\sim s_{nxt}\),则有 \(dp_i=dp_{nxt}+1\)。找 \(nxt\) 的话,维护一个栈就行了。

如果没有,则 \(dp_i=0\)

然后倒着算就行。但是这是 \(\Theta(n^2)\) 的啊!

诶,但是如果 \(s_{i+1}\ne s_i\) 的话,如果 \(i+1\) 开始的时候没有,那 \(i\) 也出不了栈啊!如果 \(i+1\) 开始的时候有,那肯定会走到 \(nxt\) 的时候,\(i+1\) 以后的全出栈了,所以栈里只剩一个 \(i\)

那不是直接跳到 \(nxt_{i+1}\) 就行了吗?!(怎么感觉有点像 KMP

但是还是不知道会不会是假的。

然后又发现,对于某个位置,一个字母所跳到的位置是固定的!

然后有一通搞,搞到只有一层循环,里面只有一个 memcpy 一个长为 \(|\Sigma|\) 的数组,代码极短。

大样例过了,那 B 题有了。

(P.S. 写到这才发现我开了一个 \(\Theta(n|\Sigma|)\) 的二维数组,算了下需要近 \(200\operatorname{MB}\),吓得我赶紧去看空间限制,看到空间 \(512\operatorname{MB}\) 才放下心来。)

此时还剩大概一小时。

然后去想 D 题部分分,想着先做下 \(c_i=0\) 的情况。(说实话我都没想到 D 的正解那么水

写了个树形 DP,把大样例过了,然后才发现 DP 是错的!(什么牛魔大样例

然后又去写了个性质 B 的 \(10\) 分。

现在 C 已经不可能继续去写了,把之前写的全删了,然后去骗个性质 A,甚至 B&C。

然后脑子乱了,瞎写一通,根本没运行,编译过了,然后监考员说考试结束,匆忙把 freopen 的注释删了,然后保存。。。。。。

估分:\(100+100+0+10=210\)

实际:\(100+100+0+25=225\)

不挂分的话应该能 1=/6√ 吧。

Day \(2\)

不知道从哪里搞到了 CSP-S 估分,\(100+100+0+15=215\)

Day \(7\)

搞到了代码,在洛谷自测。\(100+100+0+20=220\)

D 题的 B 性质写炸了,TLE 了。全靠 A 性质错误做法拿了 \(20\)

CCF D 题数据给我水一点。

Day \(9\)

出分了,\(100+100+0+25=225\)。凉凉。

1= 线 \(150\) 咋搞的。

后记

本场 CSP-S 的亮点:没死磕 C 而去把 B 做了。

污点:最后 \(1\operatorname{h}\) 时间分配完全错误!

C 题本来已经码了大半个小时了,结果最后一小时 CD 全都没搞到多少分。明年这个难度起码得 \(350+\) 吧。