搜索
热搜: NOIP OIer 神牛
查看: 329|回复: 0

竞赛划重点 | CSP-S(提高组)超全知识点汇总!

[复制链接]

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2020-12-3 13:43:51 | 显示全部楼层 |阅读模式
本帖最后由 oyangningtao 于 2020-12-3 13:45 编辑

一、提高组知识点

1、基础算法
贪心
枚举
分治
二分答案
倍增
构造
高精
模拟
分数规划

2、图论
图论入门
最短路算法(dijkstra、spfa、floyd)
差分约束
最小生成树(kruskal、prim)
并查集(扩展域)
拓扑排序
二分图染色
二分图匹配
tarjan找scc、桥、割点,缩点

3、树
LCA
树的直径、树的重心
dfs序
树链剖分

4、数论
gcd、lcm
埃氏筛法
exgcd,求解同余方程、逆元
快速幂
组合数学
矩阵
高斯消元

5、数据结构
链表
队列(单调队列)、栈(单调栈)
st表
hash表
线段树、树状数组
字典树
分块
平衡树
主席树
莫队

6、动态规划
背包DP
树形DP
记忆化搜索
递推
区间DP
序列DP
概率DP
DP优化(不涉及斜率优化、四边形不等式等等)

7、搜索
暴搜(dfs、bfs)
搜索的剪枝
启发式搜索(A*)
迭代加深搜索、∗IDA*
随机化搜索

8、其他算法
STL的基本使用方法
脑洞的正确使用方法
KMP
状态压缩
AC自动机

二、注意事项
1.保持好的心态:考试前不要过于紧张,可以回忆一下以前考试常用的技巧,易错点和“骗分方法等”。

2.审题:这一点非常重要,一旦审题错误或者理解错误就可能造成你花很多时间写出来的程序WA, 写代码前先把题读懂,读透,然后想出算法后才开始写代码。

3.考虑严谨:先要审题,然后要考虑特殊情况和极端情况。

4.代码正确:也就是说,你写代码时要争取一次写对。在想出具体算法后才开始写代码。写代码的时候要写一行,看一行,每写完一行,就考虑一下是否可能写错(for循环边界,格式控制符,i,j混淆......),还要加强静态查错。

5.freopen:文件输入输出是非常重要的一部分,一旦写错一点,就会丢掉该题的全部分数。

6.检查:注意检查你的程序是否在考试指定文件夹里面,名称是否正确,以及考试技巧中的的对拍。

7.防爆(防止爆数组):数组定义要小于空间限制。

8.头文件:如果不用万能头文件,那头文件一定要写全,缺少必要头文件就是0分,同时不要用禁止使用的头文件(如:windows.h)。

9.数据类型:一定要看题目数据范围,要考虑极端情况int是否足够。不够时要考虑(unsigned) long long甚至高精度,还要防止中间结果溢出。

三、考试技巧
1、时间复杂度的选择:根据每道题数据范围选择适当时间复杂度的算法,如:n<=5000,000 就应该选择O(n)及以下的算法,O(nlogn)的算法可能会超时如果n<=10^9(如NOIP2017DAY1T1) 那就需要O(logn)或O(1)的算法了(推结论)。

2、利用Dev C++:如果你的考试环境使用Dev C++那么注意:在工具->编译选项 中将代码警告选项调为显示最多警告信息,帮助你尽可能多的发现隐性错误。

3、查错:写代码要尽量保证一次写对,但写错了有没有办法,需要查错。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

津ICP备19006949号-1 | 津公网安备12010102000465号

快速回复 返回顶部 返回列表