1. 必备知识

普及组必学

1、模拟算法(暴力枚举),按照题目的要求,题目怎么说就怎么做,保证时间和正确性即可。

2、搜索与回溯,主要的是\(DFS\)(深度优先搜索)和\(BFS\)(宽度优先搜索),基本没有直接的暴力搜索。一般是记忆化搜索加剪枝,普及组第三题难度。

3、简单操作:如筛法、前缀和、快速幂、高精度、辗转相除法等,掌握全面即可应对大部分处理数据上的问题。

4、队列(单调队列)、栈、堆、链表等基础数据结构。

5、简单二分和分治(快速排序,归并排序)。

6、贪心,要保证贪心的正确性,如果无法证明也可以用来骗分。

7、数学知识、公式计算,要点在于公式的化简与变形,经过反复操作后也许就能得出重要结论。

8、简单的动态规划,容易推出状态转移方程,要注意初值与计算边界条件。

9、字符串基本操作,插入、删除、查找等。

10、经典例题变形加深:八皇后、马的走法、背包问题等。

提高组必学

0、普及组的\(10\)条。

1、较难的动态规划,多维的状态,转移方式较多。

2、简单数论,如扩展\(GCD\),欧拉函数等。

3、进阶算法:倍增,并查集,差分约束、拓扑排序,排列组合数,逆元,哈希。

4、最短路问题,需要掌握弗洛伊德算法、\(SPFA\)算法、\(dijkstra\)算法,以及它们对应的优化,再根据题目实际要求进行变形,用同样模板达到各种不一样的效果。

5、最小生成树问题,主要的两种算法为\(Prims\)和\(Kruskal\),同样要加上对应的优化,再根据题目进行变形,以满足题目的实际要求。

6、二分图染色、二分图匹配,一般题目都隐藏得很深,需要找到题目的本质,才能发现正确的解法。

7、强连通分量\(Tarjan\),最近公共祖先\(LCA\)。

8、数据结构:线段树、字典树、主席树、树状数组等。

9、树的更多操作:树链剖分、树的直径、树的重心等。

10、字符串操作:\(KMP\)等。

更多拓展

****大部分是省赛内容,如果想NOIP\(CSP-J/S\)取得好成绩的话,挑一些简单的学习一下吧!****

搜索:

启发式搜索(\(A*\))

迭代加深(\(ID\))

\(IDA*\)

随机化搜索

图论:

网络流

仙人掌算法

树:

平衡树

树套树

圆方树

线段树合并

数学:

容斥原理

莫比乌斯反演

中国剩余定理

欧拉定理

矩阵乘法

\(FFT\)

博弈论相关

计算几何

字符串:

字符串哈希

\(AC\)自动机

后缀数组

后缀自动机

回文自动机

\(manacher\)

共计25大类

高二学长的学习建议

1、尽快学习数学和\(DP\)

2、要重视网课的题目,找大佬题单

3、不会的题针对数据范围尝试打部分分,不要硬肝正解

4、不要开车,开车劝退

5、\(t1\)简单不要放过

6、先盲猜算法,尝试硬套

7、洛谷刷题不要点开标签

8、可以去无难度标签等的\(OJ\)刷题

9、多翻翻大佬博客

10、学习新算法要深一些,不要太快,适当放下脚步

11、高级数据结构不着急

12、考试完要做到考后\(300\),重视模拟题。对于好的题可以写博客记录

13、要自信

14、博客园的博客比较好

15、一些算法应用很多,如线段树,树状数组等。不能只停留在大板子的水平

16、如果想要进省队,可以多接触外面的人。不要飘,因为优势可能会消失。有了优势不要太高兴。

17、多练习

18、NOIp不会考高级算法,但省选会。刷题量,积累很重要。扩大见过题的概率。

19、可以多做一些思辩题,做自己能力范围内的题

20、训练自己不要犯诸如\(freopen\)未注释,空间开大的问题。

21、可以进行互测。

【OI学习注意事项】的更多相关文章

  1. OI学习之路上的宝藏网站/App分享

    OI学习之路上的宝藏网站/App分享 想要变强吗少年?这里有各种我平时收集的网站/App,它们可以帮助你更好地学习算法或者找到解题思路.废话不多说,快来打开新世界的大门罢~ 知识学习 觉得各种知识晦涩 ...

  2. 关于学习oi的一些事项

    我只是突然有感而发!(脑抽罢了 我其实是那种一直都没有计划说去学什么的人. 当然也不是那种点开洛谷一道题去写这道题不会就去学习相应的知识点的人. 随着洛谷 poj bzoj HDU CH Vojs 等 ...

  3. Linux学习笔记(2)Linux学习注意事项

    1 学习Linux的注意事项 ① Linux严格区分大小写 ② Linux中所有内容均以文件形式保存,包括硬件,如硬件文件是/deb/sd[a-p] ③ Linux不靠扩展名区分文件类型,但有的文件是 ...

  4. 海亮OI学习游记

    这只是一篇纯洁的游记,这里将要记录我在海亮十天集训的生活与被虐的历史QWQ...... Day1(2.10)刚来到海亮,嗯,这的环境真的不错. 来到机房,woc这机房的配置好高啊...这里都能打守望屁 ...

  5. vue 学习注意事项

    一:插值方式: 1:数据绑定,最常见的形式就是使用 “Mustache” 语法(双大括号)的文本插值 <span>Message: {{ msg }}</span>  通过使用 ...

  6. 【清北学堂】广州OI学习游记

    \(Day~0\) 早上\(9\)点多才爬起来,然后水了道题. 下午从[数据删除]出发,颠簸了将近\(5\)个小时终于抵达广州. 一出地铁站--卧槽这天,卧槽这风,要下雨的节奏? 没过两分钟倾盆大雨. ...

  7. Java学习注意事项

    一个Java文件中可以包含多个类. 如果有public类,则文件名必须和public类一样. 例如: class Pie { void f(){ System.out.println("Pi ...

  8. 最近一段OI学习计划

    1.在寒假的时间里尽量吧图论和DP的基础先学一下: 图论:数,二叉树,DFS.BFS遍历,然后最短路径(Floyd.dijkstra.SPFA),然后再最小生成树吧,如果还有时间的话(kruskal( ...

  9. Java学习: 面向对象的使用与注意事项

    面向对象的使用与注意事项 面向过程:当需要实现一个功能的时候,每一个具体的步骤都需要亲力,详细处理每一个细节面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做 ...

随机推荐

  1. JS自适应导航栏,菜单栏

    1. 打开 https://github.com/VPenkov/okayNav下载源代码 2.引入两个css样式 <link rel="stylesheet" href=& ...

  2. Thinkphp 使用小结

    分页中带查询参数 ...->paginate(15,false,['query'=>request()->param()]); 队列后台自动开启运行 nohup php think ...

  3. sql中级语句

    创建联结 select n_title,n_content,t_name,t_memo from nrc_news,nrc_type where nrc_news.t_id=nrc_type.t_id ...

  4. 【Python】【demo实验18】【练习实例】【统计输入字符串中,数字的个数、英文字母的个数及其他符号的个数】

    原题: 输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. (本题暂时不支持中文字符及汉字) 我的代码: #!/usr/bin/python # encoding=utf-8 # -* ...

  5. Spring系列二:IoC 容器

    还君明珠双泪垂,恨不相逢未嫁时. 概述 Spring IoC容器是Spring框架的核心.只需要进行简单的容器配置,就可以将创建对象,使用对象,销毁对象联系在一起,从而管理从创建对象到销毁对象的整个生 ...

  6. luogu P2765 魔术球问题 (最小路径覆盖)

    大意:给定n根柱子, 依次放入1,2,3,...的球, 同一根柱子相邻两个球和为完全平方数, 求最多放多少个球. 对和为平方数的点连边, 就相当于求DAG上最小路径覆盖. #include <i ...

  7. 一致性算法—Paxos、Raft、ZAB

    一致性算法—Paxos.Raft.ZAB 2019年04月21日 20:35:09 bulingma 阅读数 64更多 分类专栏: 分布式概念   版权声明:本文为博主原创文章,遵循CC 4.0 BY ...

  8. jvm 中内存的栈和数据结构中的栈的区别

    1.常见的数据结构:栈.队列.数组.链表和红黑树,java内存划分 2.JYM中的栈是先进先出,先入栈的先执行: 2.数据结构中的栈是先进后出,类似手枪的弹夹,先进入的子弹最后才发射: 3.数据结构中 ...

  9. JS基础_if练习一

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  10. R语言学习笔记:读取前n行数据

    常规读取 一般我们读取文件时都会读取全部的文件然后再进行操作,因为R是基于内存进行计算的. data <- read.table("C:\\Users\\Hider\\Desktop\ ...