https://www.bilibili.com/list/watchlater?oid=113702682496885&bvid=BV12rCVYeErw&spm_id_from=333.1007.top_right_bar_window_view_later.content.click

最基础的部分

  • 顺序,选择,循环,数组,函数,字符串,结构体 (类)的语法 (必会)
  • ==高精度(C++组需要考虑,三年内A组考查过大数乘法与减法的编程题)==
  • ==组合数的思想(C++组去年第一题)== 再简单看一下比较基础的写法,模板太长了
  • ==概率论与期望常见公式(Java组第五题)== 知道全概率公式,贝叶斯公式,还有期望的公式xi * P
  • 找规律能力(蓝桥杯很喜欢在填空题考数据非常大的规律题)
  • 进制转换(必会,k进制转10进制,10进制转k进制)

基础算法

  • 一维前缀和差分与二维前缀和差分(必会,思想很简单)
  • 二分 (必会,必考建议熟练掌握一些模版以及判断二段性)
  • 双指针(前后指针左右指针,必会考的都比较简单

数据结构

  • 链表 (对新手较为复杂的数据结构,三年内考过模拟链表,一般不太好直接出题,尽量会)
  • 队列(较为简单,必会,近三年考过模拟队列)
  • 栈 (较为简单,必会)
  • 优先队列/堆 (支持自动排序的数据结构,堆顶为最值,必会)
  • 哈希表(必会,一般每个语言都自带哈希,栈,队列,优先队列,明白原理会使用即可,栈和队列最好
    会用数组模拟)
  • 单调栈(求解序列中每个数的最左边或最右边第一个大于其的数,可以求解序列中所有连续子序列的最
    值和,尽量会)
  • 单调队列(求解序列中每个长度为k的窗口的最值,尽量会) ==O(n)==
  • ==二维单调队列(求解子矩阵最值,尽量会)== 什么玩意
  • ==并查集 (解决不相交集合并,去年第二场考过并查集的思想,问连通块中点的数量,尽量会)==看一下模版
  • ==树状数组(解决单点修改,区间求和问题,尽量会,一般考就压轴)== 再看一下
  • ==线段树(区间修改,区间最值,不带懒标记的线段树可以学一下,带的话可以不会,大概率oi下难写
    对)== 这玩意模版真能背下来吗 , 建议只学ST表进行替代
  • 主席树(区间k值,建议不写)

搜索

  • dfs(回溯必会思想,近几年考的比较难,基本都是压纳题,简单的dfs比较少出现)
  • bfs (必会,比较简单,解决等权值最小路径问题)
  • 二进制枚举(必会,近三年填空题考的多,用二进制位01表示选和不选)

动态规划

  • 记忆化搜索(尽可能会,因为基本上所有dp题都可以用记搜)
  • 线性dp(必会,考的非常多与频繁,前几年基本上一场会出现至少二题线性dp,去年没考)
  • ==背包问题与背包计数(必会,01,完全,多重,还有个整数划分问题)== 建议简单过一遍
  • 区间dp(尽量会,考的少)
  • 树形dp(尽量会,考的少)
  • 数位dp(尽量会,代码简单,都是记忆化搜索模版,写几个就熟知了)
  • 状压dp(尽量会,三年内考过裸题)
  • 概率与期望dp (可以不会,十年内考过一次)

数学

  • 最大公约数,最小公倍数,唯一分解定理(必会)
  • ==素数,素数筛法== 线性筛和欧拉筛
  • 快速幂,费马小定理求逆元必会
  • exgcd 组尽量会其他组可以不会近些年没考过)
  • 欧拉函数,欧拉降幂(a组尽量会,其其他组可以不会近几年就考过一道)
  • min25筛,杜教筛(a组尽量会)其他组可以不会)
  • 排列组合,第二类斯特林数(必会)
  • 卡特兰数(a组选会)
  • 概率论与期望公式(尽量会,去年第一次考,然后每年都会考均值期望)
  • 矩阵乘法(尽量会,近几年没考过)
  • 数论分块(尽量会,近几年没考过)

图论

  • 单起点多终点正权最短路)(必会,dijkstra)

  • 单起点多终点负权最短路(必会,Bellmanford,spfa)

  • 多起点多终点最短路(必会,!Floyd,i记住循环kj就好)

  • 最小瓶颈路(尽量会,三年内考过一次,dijkstra和kruskal都能解)

  • 最小生成树(尽量会,求经过图中每个点的最小路径)

  • 最近公共祖先(lca,尽量会)

  • 强连通分量(tarjan可以不会)

  • 拓扑序(选会,没考过)

字符串

  • 字符串哈希 (必会,尤其是与二分结合的思想以及回文半径回文中心的思想)
  • kmp(必会,会求周期)
  • manacher(求回文串,尽可能会)
  • 字典树(尽可能会)