CSP2022

CSP 2022 游记

前言

关于作者:

  • 坐标 ZJ
  • 很菜

Day 初赛

感觉挺简单的,考的都是 j组 的内容?

除了几个长相奇怪的题,比如完型第一个,感觉很抽象,做起来感觉全场最难。

出来以后对完答案发现错了几个简单题,比如宇宙射线那个,感觉自己当时脑子可能受到宇宙射线影响了。但总体还行,估计不至于过不了初赛。

分数出来以后也是感觉不错,所有本来对答案时模棱两可题都对了(虽然还是错了不少弱智题)。然后众所周知 CCF 的服务器也是十分的好,最后喜提 \(502\) 分,但看机房别人都是 \(504\) ,又垫底了(

最终分数:502 \(91\)

Day 0

貌似什么都没干。

Day 1

正文开始。

好像前一天睡太晚了,然后今天巨困无比(

然后早上坐了 2h 的车到杭师大,去吃了肯德基,顺便看了一下 CSP-J 的题,感觉今年 CSP-J 非常简单?

然后就进考场了,在校门外还排了 0.5h 的队,然后很快就坐到了机子上。

首先感觉屏幕分辨率很阴间,然后发现键盘很大,而我写代码时喜欢按右移,用这键盘打感觉巨难受。

还发现桌面上有 VSCode ,但是里面只有英文,本来还想配一下看能不能用,现在直接弃了,于是全程用 Devcpp 写代码。

然后就公布密码了,密码是 belief2022 ,现场大小写还错了(

然后先看题,第一眼发现 T1 不会, T2 秒了, T3,T4 是抽象题,然后开始想 T1 。

首先发现可以 BFS 求出每个点走一次能到哪里,然后题意就变成 从 \(1\) 出发,走四步回到 \(1\) ,在经过点不重复的前提下,求经过点权值和最大值,然后不会了,盯了 20min 啥也没盯出来。但是突然发现它的边是双向边,然后就想到了可以枚举第 \(2\) 个和第 \(3\) 个点,然后预处理然后算一下就好了。但是这样可能会重复,怎么办呢?发现可以直接记每个点到 \(1\) 的中转点中,权值最大的和次大的点。然后发现小样例过不去(其实是我写挂了,没有判重),于是想一想发现要第 \(3\) 大也要记,因为对于第 \(3\) 个点来说,第 \(1\) 个点和第 \(2\) 个点都有可能成为 \(3\) 的中转点,运气不好会把最大和次大都 ban 了,于是会用到第 \(3\) 大,然后很快就写完了,并过了所有样例。

但是这里有个伏笔,就是我写的 \(O(n^2)\) 带了 \(56\) 倍常数,而且我没测极限收据,也没卡过常,但是过了 luogu 和 INF OJ 的数据,具体咋样我不好说。

然后就去写 T2 了,开了 \(6\) 个 ST 表,40min 就写完了,并过了所有样例。

然后去看了 T3 ,T4,发现 T3 真的是抽象题,然后 T4 是一开始题意看错了,其实是棵树,然后就想直接用倍增维护矩阵,然后因为状态设计的巨丑无比(UPD:其实我维护的甚至不是矩阵,和矩阵唯一相似点在于都是 \(n\times n\) 的,且乘法很神秘,感觉想到矩阵就切了),导致写了 1.5h 。最后过不了样例 \(2\) ,但是能过样例 \(3\) ,于是发现 \(k=3\) 只用链上的点是假的,但是 \(k\le2\) 是对的,于是光速拼了个 dij 跑路,此时还剩 0.5h 。

回去看 T3 。发现题目问的相当于是否每个点出度都为 \(1\) ,然后发现暴力有 \(40\) 分,光速写完去检查 freopen 和文件名了。

估分:\(100+100+40+76=316\)

到家后用民间数据测了一下,也是这个分,同时发现 T4 其实是 sb 题,主要看完题直接以为只有链上的点有用了,不然大概能切?(UPD:其实是因为没有想到矩阵)

然后 T3 其实 \(60\) 也是很简单的,但时间来不及了。(UPD:其实 \(60\) 直接暴力就好了。而且我拿的分甚至没有全输出 NO 的高)

还有就是同机房大家都比我高,又垫底了。

UPD:最终分数:\(100+100+40+76=316\)

T1 巨大常数过了,然后其实 T4 暴力 dij 复杂度上界是 \(O(qn^2\log n)\) ,菊花就能卡掉,但是出题人没卡。

posted @ 2025-07-23 22:26  Z_301  阅读(26)  评论(0)    收藏  举报