CSP-J2/S2 2023 游记
可能早就应该发出来的游记。
2023-10-07 16:32。
前一天睡得比较晚,所以迟到了一点点。
上来先敲了个对拍,拍了一个 if a % 1000 = 0 then a++
的 A + B,拍出来了,然后开始看题。
先粗略看了一眼题目,发现 T1 很不可做,感觉是 \(10^9\) 级别的约瑟夫问题。仔细看了之后发现只要求第 \(n\) 个人,那就很好做了,直接写完去看下一题。
T2 感觉比 T1 还简单,不知道它考了什么知识点,啥都不用就做完了。
今年 J 组的 T3 也是简单题,虽然是大模拟,但比前两年清新多了,基本上没有什么细节,解题的过程也非常自然,因为具体怎么做它题面都告诉你了。
做前三题大概花了 75 min,开始看第四题。
一看发现很不可做啊,甚至感觉一分都拿不到,当时的想法就是 \(f_{i, j}\) 表示表示 \(j\) 时刻到达 \(i\) 点的可行性。显然时间复杂度为 \(O(tm)\)(做法大概类似 Bellman-Ford),但由于是 J 组所以就没打暴力了。
然后开始胡思乱想,具体内容太离谱了,略去。
当时就断言今年的旅游巴士是第二代摆渡车,HN 没几个人能做出来。
睡了 30 min 忽然想起 J 组无论是 Tarjan 还是数学之类的东西都不能考,所以要么是 \(\texttt{dp}\),要么是最短路。
然后这道题显然不太能 \(dp\),所以想到了最短路,状态用一个 \(\{u, step\}\) 表示,其中 \(step\) 是可以变化的,如果一条边走不过去就把 \(step\) 调大。然后 \(u\) 与 \(step \bmod k\) 相等的状态都是等价的,所以跑最短路就好了。
跑大样例发现跑了 3s,所以把 pq 换成了 \(2 \times 10^6\) 个 queue,又担心 queue 内部是用 deque 实现的,所以换了 vector。
然后就 AK 了,个人感觉第四题还是有点难度的,特别是对于水平还可以的选手,因为很容易被带偏,之后就再也想不出来了。
但是比前几年难是肯定不至于的,去年第三题我到现在还不会做(不知道去年是怎么场切的)。
个人难度:红红黄绿。
中午吃的很饱,然后睡了 5 分钟就被叫起来了。
在车上一直在向下午的策略,因为最近状态不是很好,模拟赛总是挂分。
我当时想的策略大概是这样的,前 \(15\) 分钟先把题看了,然后 \(1h 15min\) 把暴力敲完,把题看懂,之后每 \(45\) 分钟写一道题(或者一个部分分),写完之后再重新评估一下每一档分的性价比,然后继续决策,最后留 \(5 min\) 检查。
进考场之前看到了几位故人,也看到了几位同机房训练的同学,但是怕影响发挥,所以就没打招呼。
S 组开始,进考场大概还有 \(25\) 分钟试机,还是先写对拍。
忽然发现显示屏最上面有一条线一直在闪,所以我申请了换电脑。换完又把对拍重写了一遍。
拿到题目,首先整体看了一遍,第一感觉是 T1 暴力,T2 字符串,T3 大模拟,T4 树论。
还是选择 1234 的顺序开题,T1 是简单题,5 min 写完,由于正解就是暴力所以没有对拍,只是肉眼查了一遍。
T2 不太会做,但是总感觉是那种找规律题,与字符串倒是没啥关系,首先 \(O(n^2)\) 的暴力是好写的,当时计划先拍暴力,之后再花时间仔细研究。
此时大概过了 35 min 左右,而我已经 150 pts 了,感觉今年有希望了。
看 T3,按照原计划前 \(1h 30 min\) 我应该先打暴力,但由于是大模拟,所以我把 \(1h30min\) 调整到了 \(2h\),然后直接冲 T3 正解。
感觉它结构体和变量的定义有点绕,想了想用一个类 type 表示结构体/类型,包括 \(\texttt{byte, short, int, long}\),另一个类 element 表示元素,一个 type 内有若干 element,一个 element 属于一个 type,想清楚这个关系就很好写了。
大概写了 3.5k,一测发现大样例过不去。保守起见暂时跳了 T3,去看 T4。
T4 看到大概就会做了,感觉 T4 应该是比 T3 稍微简单一点的,但是 T3 我已经写完了,所以计划先回去写 T3,切掉之后再写 T4。
对着 T3 的第一个样例调了很久,我发现我读错题了,原来结构体的大小不算作对其要求。
然后我觉得那就很好做了,大概改了 20 min,过了第一个样例,发现第二个过不去。
然后发现我又读错题了,原来一个元素的位置取决于他自己的对其要求,而不是包含它的结构体的对其要求。
又改了很久,发现第三个样例过不去。而且从头到尾没有一个询问答对。
当时已经 6:00 了,由于延时到了 6:50,还剩 50 分钟,我出去上了个厕所,想了想接下来的策略。
此时我已经意识到可能我应该先开 T4 了,但是我已经花了 3h 在 T3 上了,而且 50 min 也不一定能写完 T4,所以我还是只能继续磕 T3。
回到考场,我小声将 T3 代码念了 2 遍,发现一个错误都没有,然后测了好几遍第三个样例,怎么都过不去,而且和答案差的特别远。
偷看了一眼旁边的选手(其实是 yxh),发现他已经 AK 并且开始上拍了。
当时就准备放弃了,然后开始安慰自己,反正才初二大不了明年再来,然后我做不出其他人肯定也做不出吧。
于是我在 vscode 和题目之间乱划,划着划着感觉不太对劲。
回到题目仔细一看,发现我又读错题了,原来是起始地址在对其要求的整数倍,而不是结束地址在对其要求以内。那不是变得更简单了吗。
但是此时只剩 25 分钟,肯定是写不完了,当时就抱着随便写写的心态乱糊,当时感觉手都是软了,根本不知道在写什么。
糊完了,一测样例,发现过了?忽然就有一种起死回生的感觉。
然后还剩最后 8 分钟,T4 我开没开始动,当时分析了一下发现我有两个选择,一是检查前面的代码,二是随便在 T4 上写点东西。
按照教练的说法我肯定是应该选择前者的,但是我认为我前三题都打得非常稳,所以我选择去写 T4。
然后发现 T4 暴力其实并不好写,至少 8 min 是写不完的,我想起了上次模拟赛我输出 1 max(n, m)
骗到的 10 分,输出了一个 \(n\)。
后来想起这件事确实感觉当时很不清醒,因为第 \(n\) 天种的树在第 \(n\) 天只有 \(0\) 米,而 \(a_i > 0\),所以答案是多少都有可能,但唯独 \(n\) 不可能。不过当时并没抱有什么希望,想起也就不可惜了。
那么最后我还有 3min,我又检查了一遍代码,重新测了一遍样例,发现文件都开了,代码写的也比较工整,大样例也全过了,应该是很难挂分的。
然后听说要压缩文件,我就输了一串黑板上的命令,发现压缩失败了,然后一位监考老师走过来说他帮我压缩,那我就放心了。
期望得分:\(100+50+100+0=250\),应该是非常稳的(指不可能挂分),虽然感觉今年题目比去年简单,但是从某种程度上来说我发挥的并不算很差,然后 T3 看懂题意后调出来或许也是天意,所以我觉得 \(250\) 并不很低。
考完一天觉得很累,所以晚上准备放松一下。
一个人出去散步了,想了很多事情。
首先我用小图灵测了一下,J 组确定是 AK 了。
然后 S 组,我不敢问其他人考的怎么样,猜了一手分数线,提一 150, 6 级 170,7 级 240,不知道猜的准不准。
又想了想 S 的 T4,感觉正确的策略还是应该先写 T4,这样得分应该会更高一点,不过反正已经考完了,一直想也没用了。
回家后发现考场代码发下来了。
准备去洛谷或者哪里测一下,但是忽然发现找不到我的代码了?
当时我也并不觉得怎么样,因为我是换了座位的,感觉这应该也是正常的,可能是操作的问题,但反正不是我的问题。
教练叫我去看原始数据,发现原始数据也没有我的?
我又仔细翻了一遍,发现我的压缩包被放在最上面了,前面还加了一个 direrr 的前缀。
原始数据被处理了,而最终文件又没有我的,此时我是真的慌了。发了个信息给教练,他一直没有回复我。
等了 15min,他回复了。
当时我直接怔住了,第一反应是把 QQ 退登了。
然后我仔细一看,发现压缩包名是 direrr_CSP-S00916_HN-N00916,我顿时知道是怎么回事了。
我觉得这不可能啊,我明明检查了一遍的,但是打开文件夹,上面写的确实是 CSP-S00916,那我也无话可说了。
我忽然想起交卷时解压失败的事情,或许就是因为这个吧。
无论如何都只能明年再战了。
到机房问了其他人的成绩,听说他们不是 AK 就是 300+,那我还不如爆个零呢。没有遗憾了。
CSP-J2/S2 2023 游记的更多相关文章
- 【游记】CSP J/S 2019 游记
J 组 \(2:30\)开始, \(2:13\)还在酒店的我看了看手表...飞奔考场. T1 数字游戏 秒切. 下午某中学某大佬说可用线性基(%) T2 公交换乘 用单调队列思想,秒切. T3 纪念品 ...
- CSP模拟赛3游记
老师说这次题比较难,深表同意,还是只有90min. T1有还几个坑点,呜呜呜,感觉有点像斗地主的超级简化版. T2:不难但是特别复杂需要70+行代码,比龙虎斗好想但比较难写,但还是成功打挂. T3:根 ...
- CSP模拟赛2游记
这次由于有课迟到30min,了所以只考了70min. 调linux配置调了5min,只剩下65min了. T1:有点像标题统计,但要比他坑一点,而且我就被坑了,写了一个for(int i=1;i< ...
- SRM 392(1-250pt)
DIV1 250pt 题意:给两个各含有一个*号的字符串s1和s2,可以用一个任意字符串代替*号(注意是串,不是只能用单个字符代替,也可以为用空串代替),问能否将s1和s2变为相同的字符串.如果能输出 ...
- BZOJ2961 共点圆[CDQ分治]
题面 bzoj 其实就是推一下圆的式子 长成这个样子 假设要查询的点是(x, y) 某个圆心是(p, q) \((x - p)^2 + (y - q)^2 \leq p^2 + q^2\) 变成 \( ...
- Leetcode题目practice
目录 Leetcode题目解答 1. 删除最外层的括号 2. 两数之和 3. 宝石与石头 4. 移除元素 5.删除排序数组中的重复项 6.寻找两个有序数组的中位数 7.盛最多水的容器 8.存在重复元素 ...
- [HNOI2008]Cards(dp,Burnside引理)
Burnside引理: 参考自 某大佬对Burnside引理和Polya定理的讲解 相关概念 群:在数学中,群表示一个拥有满足封闭性.满足结合律.有单位元.有逆元的二元运算的代数结构. 置换群:由有限 ...
- (Java实现) 洛谷 P1098 字符串的展开
import java.util.ArrayList; import java.util.Scanner; public class zifuchuandezhankai { static Array ...
- 【游记】CSP 2021 J2
这次是第一次参加CSP的复赛,所以考的就很LJ. \(DAY-\infty\) 到 \(DAY-14\) 知道了自己苟过了初赛,像个SB一样. (我初赛66分,旁边那位63.5,cao着线过去的) \ ...
- CSP 2019 游记
Day -32 开坑. 没什么好说的,等个 5 天等初赛(应该叫第一轮认证)挂掉之后就能弃坑了. 今天开始停课,虽然每天只停半天,但是感觉还是特别的舒服~ 然而得等初赛过了才能全天停课-- 没关系,熬 ...
随机推荐
- Cython.Compiler.Errors.CompileError: Cython.Compiler.Errors.CompileError: /home/devil/anaconda3/envs/chainerRL/lib/python3.6/site-packages/mujoco_py/cymj.pyx
ubuntu系统下,python3.6,anaconda下配置mujoco210环境时遇到报错: /home/devil/anaconda3/envs/chainerRL/lib/python3.6/ ...
- baselines算法库common/vec_env/vec_env.py模块分析
common/vec_env/vec_env.py模块内容: import contextlib import os from abc import ABC, abstractmethod from ...
- WPF 使用MediaElement,但Source带https会抛出未引用对象实列
原因和解决办法 如果恰好使用了MediaElement,在调用的时候,会出现空异常 var uri = new Uri("https://xxxx.mp4", UriKind.Re ...
- [COCI 2023/2024 #1] Mostovi 题解
前言 题目链接:洛谷. 题目分析 首先可以确定的是需要枚举断边,所以我们希望两次枚举之间能有些关联.不难想到类树形 DP 的套路,建 DFS 树,只不过这题除了讨论和父亲之间的边,还要考虑返租边.以下 ...
- [COCI2013-2014#6] KRUŽNICE 题解
前言 题目链接:洛谷. 题目分析 显然,手模样例发现答案分为以下几个贡献: 所有圆外面的那个大平面,贡献为 \(1\). 每个圆至少被分成一部分,贡献为 \(n\). 如果有一个圆被"拦腰截 ...
- QWen2-72B-Instruct模型安装部署过程
最近在给我们的客户私有化部署我们的TorchV系统,客户给的资源足够充裕,借此机会记录下部署千问72B模型的过程,分享给大家! 一.基础信息 操作系统:Ubuntu 22.04.3 LTS GPU: ...
- Java和LWJGL的关于OpenAL的文章
一.OpenAL的原理和基本概念: 1.1 OpenAL的架构 OpenAL的架构同样基于三个核心组件:Context(上下文).Source(声源)和Buffer(缓冲区).Context代表了音频 ...
- Ruoyi-Cloud 启动失败的坑,关于 selectConfigList
刚才编辑了一堆,不知道为啥加了个英文单词,当前页面刷新自动搜索了单词,之前的内容总的就是现在都要会SpringCloud,高并发,几个真正懂高并发的,问题一般项目也没有啥高并发.自己之前的项目遇到过高 ...
- ApplicationRunner的讲解
在开发中可能会有这样的情景.需要在容器启动的时候执行一些内容.比如读取配置文件,数据库连接之类的.SpringBoot给我们提供了两个接口来帮助我们实现这种需求.这两个接口分别为CommandLine ...
- vscode 下配置 clang
需要在workspace的文件夹下添加文件: .clang-format 更多参数说明: https://clang.llvm.org/docs/ClangFormatStyleOptions.htm ...