【注意】考前注意事项总结
考前注意事项总结
CSP-S 2025 rp++
CSP-S 2026 了,唉,能赢一次吗。
常规要求
- 进场 40min 不能写题,把所有题读一遍看一遍,不准碰键盘,先读完题,估计自己能有多少分,分析好策略。
- 不要对题目难度和自己发挥有任何预设,分析好部分分,规划好时间,打出自己的真实水平就好,不要对线有任何预设,只要发挥好自己水平就行。
- 考试做完每个题要备份一次,每写完一个题备份一次,复制一遍,防止编译覆盖文件。
- 结束前 10min 不能再写代码了,检查文件,检查文件输入输出,检查 CE 等。
- 想到什么尽快写出来,不要全都压在手里,到最后写不完。
- 写代码时,防止错误?写完每个部分或每个函数之后把自己上一个函数读一遍,检查代码,减少错误概率。
- 卡题了可以先想想别的,考场上不要乱搞,平常怎么打就怎么打。
- 前两题一般是签,分析一下可以直接考虑冲正解。
- 稳住心态!!!
算法等注意事项
-
关流
cin不能和scanf printf getchar putchar等混用。 -
手写快读记得判断需不需要判负数,
define int long long要注意计算空间,不define int long long要把所有可能需要的地方都开long long。 -
不要看到觉得简单就开始死扣,及时验证算法正确性。
-
点分治不能处理定根路径。
-
写
1 << k注意要不要写1ll << k。 -
扫描线记得判断询问区间是否合法,使用线段树记得判断查询及修改区间。
-
线段树调试优先输出
rt,l,r观察,判断边界条件。 -
写代码要先理清逻辑,不要模糊不清就直接开写,这样非常容易卡住。
-
多测清空,可以适当多清一点,尽量把所有的都清空。
-
注意边界条件,注意下标,注意区分
n,m ,尤其是在 kruskal 的时候。 -
STL 访问时判断是否存在元素。
-
扫描线加入元素的时候不要把
while写成if。 -
ST 表如果要维护贡献区间算贡献,对于有重复的部分,记得钦定在左端或右端计算贡献!具体的,前后两边单调栈一个
\leq ,另一个< 。 -
注意网络流反边建边剩余流量初始为
0 。 -
注意 AC 自动机是
tr[tr[u].fail].son[i]而不是tr[tr[u].fail].son[v]。 -
在做线段树合并的过程中,如果要用线段树内信息统计答案,需要考虑会不会在后面修改,详细问题可以看模板题统计答案部分。
-
BFS 时要在把
v 加进队列的时候就vis[v] = 1,而不是等到取出来的时候再修改,否则v 会被其在队列里前面所有点访问,也就是你会加入非常多个v 。 -
在 tarjan 清空栈的过程中,应该清空到
n 而不是清空到tp ,原因是tp 会在 tarjan 过程中被不断弹栈最后变成0 。 -
不要有任何预设!!!!打出水平就好
系统使用
- Linux 下编译指令
g++ a.cpp -o a -O2 -std=c++14 -Wall -Wextra,一定注意不要把a.cpp和a写反,否则会直接覆盖掉,无法找回代码。 - Windows 下记得开栈开
O2。 - 调试记得先把同步流打开,否则看不到输出。
- 可以把大样例文件夹粘过来,但是要看一下是不是相同的名字(一般相同吧)。
- 记得先看好题目时间限制和空间限制,写之前先计算好。
- 能用的时间很少,一定要把握住每一分钟!!!不要空想!!!不要想着休息一下!!!不要想着时间还有很多!!!
trick 小记记
哎其实从很久之前就像搞这个,但是感觉,现在也不晚吧,反正就是一些,做题的时候遇到的比较深刻的东西。
- 遇到字符集大小只有
2 的类似最优化问题,应该考虑转化为1,-1 并考虑进行操作贡献对应到区间和是什么样的。 - 遇到序列上贡献于
\min 有关的可以考虑笛卡尔树分治,\min 的贡献次数可以根据左右子树选择方案求出。 - 当遇到一些奇怪的操作,比如这个题我们应该考虑一些增量的变化,对于操作的最优化问题我们可以尝试求出上下界,并尝试构造出达到上下界的方案。
- dp 过程中,对于后面匹配时计算前面选择的方案数,如果我们只关心其与哪个匹配,可以在处理到
i 时直接计算a_x = i 匹配的方案数,详见下面那个题。 - 这个题,考虑对于匹配类问题,贡献与
\max,\min 相关,我们就可以考虑按照值域来扫描,从而把贡献钦定到后面的部分。 - 哎感觉做了一下 CSP2025 T4,应该稍微懂了一点延迟决策,可以去 8.24 专栏里看。
- 遇到不会做的图论题,可以考虑建出 dfs 树,看有没有什么好的性质。
- 给定
1,-1 序列,最小化删除次数使得任意前后缀和\ge 0 ,答案为最大子段和 - 区间和。 - 对于从状态 A 到状态 B,操作可逆的一类构造题,可以尝试找到中间状态,并把 A B 分别转移到中间状态。
- 对于
A 字段序< B 计数的题,可以考虑枚举 lcp,设长度为p ,则p+1 位置要求A_{p+1} < B_{p+1} ,从而对于i > p+1 的位置无限制,而i \le p 的位置与B 相同。