我的知识点梳理

知识点梳理

dp

dp是一切题目的正解

在我看来,所有的题都是dp的思路,状态转移的部分实际上是所有算法都具备的,所有的算法都有自己的状态和转移方法。对于有后效性的dp依然可以通过一些操作去除后效性。(虽然有复杂度的提高)。
重要的dp分为几类

  • 线性
    • 背包
    • LIS
    • LCS
  • 维度
  • 区间
  • 树形
  • 数位
  • 期望
  • 状压
  • 插头

  d p \ dp  dp可以很简单,也可以很难。
根据某位大佬说,   d p \ dp  dp相当于有向无环图,就是在图上求最长路/最短路/联通性问题。
解除后效性可以用很多方法包括开更多数组,添加更多状态,倒着   d p \ dp  dp等等等。

优化

在我看来,主要有四个:

  • 前缀和
  • 单调性
  • 斜率
  • 数据结构

难度可以说是依次递增。

图论

图论的题目灵活多变,但不是说不能分类,大概有这几类。

  • 最短路问题
  • 联通性问题
  • 生成树问题
  • 树上问题
  • 网络流

图论问题的多变来源于他的定义。图论是元素与元素的关系,而几乎所有东西都能被抽象为元素(不能抽象的东西我还没见过)。
点事元素,边就是元素之间的联系,如此一来图论要解决的问题就非常明了了。尽管将问题转化为元素之间东方关系可能是困难的,我们依然有一些技巧来帮助我们抽象它们。

  • 分层图
  • 差分约束
  • 数论建图

这些是少数可以整理出来的方法。这样系统的方法是弥足珍贵的,对于我们而言也是及其幸运的。善用这些方法可以解决大量问题。

数据结构

这是最简单的东西,只要学会了就能做一大堆题。

  • 简单数据结构
  • 并查集
  • 线段树
  • 树状数组
  • 主席树
  • 二叉查找树
  • 分块
  • 字符串相关
    • trie
    • kmp
    • 后缀自动机
    • 哈希表
  • 常用stl数据结构
  • 数据结构组合

没啥好说的,不会就去学,学会就能用。
需要注意,很多时候我们必须在树上进行操作。不过我们可以采用很多方法将数据结构树上化。

其中可持久化不仅仅能实行树上操作,不过它确实是树上操作的好帮手。可持久化几乎可以使用在所有的数据结构上,即使是队列,堆这样的简单数据结构。他的实用性是难以想象的。

数学

世界上最难的也是最简单的东西。一个二年级的小学生都学的东西。然而超级超级难。
大概这么分类,知识点巨多。

  • 整除理论
    • 整除基本知识和定理
    • 整除分块
    • 带余除法
    • 最大公约数理论
    • 算数基本定理
    • 素数分解
    • 既约剩余系
  • 不定方程(同余方程)
    • 一次不定方程
    • 二次不定方程
    • 一元一次同余方程
    • 二次剩余
    • 指数与原根
  • 数论函数
    • 积性函数
      • 欧拉函数
      • 莫比乌斯函数
    • 积性函数性质
    • 数论函数变换
      • 莫比乌斯变换
      • 狄利克雷卷积
      • 傅里叶变换
      • 数论变换
  • 组合数学
    • 基础组合数学
    • 杨辉三角
    • 卢卡斯定理
  • 数列基础
    • 斐波那契数列
    • 数列通项
  • 线性代数
    • 矩阵运算
    • 线性代数基础
    • 矩阵对于其他算法的优化
  • 博弈论
    • 瞎搞的博弈论
    • 有理论基础的博弈论
  • 计算几何

数学真的是很难很难,但oi不会要求真正困难的数数学知识。尽管如此,熟练使用数学依然及其困难。
数学有时有出其不意的效果。

常用算法和离线算法

常用算法
  • 搜索
  • 贪心
  • 排序
  • 二分
  • 倍增
  • 离散化
  • 高精度
  • 启发式合并
离线算法
  • cdq
  • 整体二分

最后的最后,祝大家++RP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值