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. JavaScript 控制台打印window对象

    示例代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  2. kubeadm快速安装k8s

    1.安装net-tools [root@localhost ~]# yum install -y net-tools 2.关闭firewalld [root@localhost ~]# systemc ...

  3. 2019icpc银川网络赛

    外面吵得风生水起,我校平静地在打比赛,丝毫不知道这次比赛的题目就是把2018银川邀请赛的题照搬过来了QAQ,主办方真牛逼.. A Maximum(思维) 题意:维护一个栈,支持入栈和出栈操作,并计算每 ...

  4. [bzoj1892][bzoj2384][bzoj1461][Ceoi2011]Match/字符串的匹配_KMP_树状数组

    2384: [Ceoi2011]Match 1892: Match 1461: 字符串的匹配 题目大意: 数据范围: 题解: 很巧妙的一道题呀. 需要对$KMP$算法有很深的理解才行. 首先我们需要发 ...

  5. linux yum 使用epel源

    由于CentOS6的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compression not available问题. ...

  6. 深拷贝 & 浅拷贝

    浅拷贝: class Professor { String name; int age; public Professor(String name, int age) { this.name = na ...

  7. ARST第四周打卡

    Algorithm : 做一个 leetcode 的算法题 ////////////////////////////////////////////////////////////////////// ...

  8. Linux就该这么学——新手必须掌握的命令之工作目录切换命令组

    pwd命令 用途 : 用于显示用户当前所处的工作目录.如下图pwd命令运行结果所示 格式 : pwd[选项] 图pwd命令运行结果所示 cd命令 用途 : 用于切换工作路径,如图cd命令运行结果 格式 ...

  9. php 数组相关方法的一些实际妙用

    一.php数组合并两个数组(一个数组做键名,另一个做值) 有两个方法 1.循环 $arry_a = array(0, 1, 2); $arry_b = array('dongsir','董先生','董 ...

  10. rbac权限控制组件实现控制的基本原理图

    今天先整理一个rbac的权限控制的原理图上来 代码 后面就不透漏了,但是实现的方法有很多种,我这个只是其中一种的一部分!