【比赛】2023 NOIP 备战
2023 NOIP 备战
考试策略
- 20min 左右通读题面(一定不要读错题,结合样例分析
- 每道题题至少保证 50pts 左右的暴力
- 不必按照顺序做题,那道题最有希望先做哪道
- 随时存盘
- 时间分配
- 注重暴力(特别是没有思路的时候,有时间就打
- 不要在没把握的的,耗费太长时间
- 80pts - 100pts 都可以认为是正解(不要优化常数
- 先想再写
- 对拍
- 好写的对拍哪怕是暴力也好写暴力
- 不要太以来大数据
- 对拍以验证正确性为目的(不要用于验证性能
- 重视静态差错
- 宁愿少开空间,也不要 MLE(算好空间
- 最后 15min 不要打新的代码(文件输入输出,
- 中途感觉前一半时间荒废了,不要再想以前浪费的时间了。调整好心态
- 及时调整预期得分
- 相信自己!!!
一些链接
备忘
数学
图论
知识点补漏
数学
-
二项式定理
\[\large(a+b)^n=\sum\limits_{i=0}^n {n\choose i}a^ib^{n-i} \] -
\[\left(\large\sum\limits_{i=1}^ka_i\right)^2=\large\sum\limits_{i=1}^k a_i^2+\large\sum\limits_{i=1}^k\large\sum\limits_{j=1}^k[i\neq j]\cdot2a_ia_j \]
可用于在计数类问题
-
积性函数
若函数 \(f(x)\) 满足,\(f(xy)=f(x)f(y)\),则称其为积性函数。
ps. 一般如果 \(f(x)\) 的构成部分相互独立,可以考虑它的积性。
可用于简化时间复杂度。
-
一个数的质因数个数显然不会超过 \(\log_2 n\)。
-
矩阵乘法可视化: http://matrixmultiplication.xyz/
数据结构
- 可否还记得 单调栈。【板板】
根号做法(平衡时间复杂度)
- 首先可以想出两个暴力,然后用一个标准变量去衡量两个做法的时间复杂度。
- 对于统计一个变量导致不同的 ans,可以考虑最终答案的一些性质(比如单调性,不同的 ans 个数)【Till I Collapse】
动态规划 DP
- 如果对 dp 状态、转移方程等信息都明晰(包括时空复杂度度没问题),只是不知道转移顺序可以考虑 记忆化搜索。【Hossam and (sub-)palindromic tree】
- 树背包推荐使用 “刷表法”。并记得倒序枚举【Karen and Supermarket】
网络流
-
时间复杂度
Dinic : \(O(n^2m)\)
Dinic 求解二分最大匹配 \(O(\sqrt nm)\)
-
费用流
记得加在 Dinic 里加上 vis 标,因为 SPFA 跑出来的分层图肯能有环。
Some Tricks
2023.11
- 思路不要太局限,线段树里面可以同时维护好几个东西,然后相互作用(维护)【CF1701F Points】
- 区间最优解问题,不一定要枚举右区间,还可以枚举其它有特征的数,eg. 最大值【Comfortably Numb】
考试总结
11.11 联合模拟赛34
-
得出了一个更普适的结论,可以尝试用它来解释特例,以减少码量并减少写挂的可能【T2】
-
码力还是不够。。。【T2】
-
一道题想清楚了再开打【T1/2】
11.13 联合模拟赛35
-
思路如果没问题的话,不妨换个角度去实现【T1】
多考虑一下题目中的一些特殊性质,可能让时间复杂度变为均摊
11.14 联合模拟赛36
-
栈是一个好东西((【T3】
-
博弈论 直接研究初末状态找结论【T2】
11.16 联合模拟赛37
-
概率问题,如果总方案数很好球,就直接转化为求合法方案数再除一下【T2】
推式子题一定先在草稿纸上推好了,再码代码【T2】
-
计数类问题,用好容斥
日常犯智
-
只要不会 MLE 能
push_up
就不要在更改的链上更新。 -
vector
的去重:v.resize(unique(v.begin(), v.end())-v.begin());
-
set
&vector
的空间复杂度会比数值上算出来的更多一点。如果只需要用
set
的去重功能,可以开一个内存池(? -
\(\Large\star\) 初始化的时候,如果能顺序赋值的话就不要 “跳来跳去” 的赋值(可能会被卡常(但是确实会慢 600ms+
-
平衡树
Split
忘写push_up