学习笔记
文章平均质量分 92
Dodgemin
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[学习笔记]线性基
线性基是什么最常用的线性基是用来解决与异或有关的一类题目的,当然也有实数的线性基。就是由一个原集合 S\mathbf{S}S 构造出另一个集合 T\mathbf{T}T,然后可以通过 T\mathbf{T}T 中任取若干个元素按照一定的规则进行组合得到 S\mathbf{S}S (比如说 T\mathbf{T}T 的张成为 S\mathbf{S}S)。感性上和向量的基底的特性比较像。线性基的构造异或线性基每个数逐个插入线性基并维护。二进制下拆分数 xxx,从高位向低位扫。若第 kkk 位为原创 2022-01-07 21:27:35 · 486 阅读 · 0 评论 -
[学习笔记]乘法逆元
逆元是什么以及为什么要使用逆元逆元的作用:在模意义下做乘法的逆运算。在实数运算中,除以一个数,等于乘上这个数的倒数。而现在在模意义下,逆元就充当了“倒数”的角色,模意义下乘上逆元就相当于除以了一个数。逆元定义:如果一个线性同余方程 ax≡1(modb)ax \equiv 1 \pmod bax≡1(modb),则 xxx 称为 a mod ba \bmod bamodb 的逆元,记作 a−1a^{-1}a−1。所以求逆元实际上就是求如下方程的解:ax≡1(modp)ax \equiv 1 \pmod原创 2022-01-07 21:26:04 · 1817 阅读 · 1 评论 -
[学习笔记]动态规划的优化
这一部分自己学的比较少,所以内容比较少……后面学了会增加内容。(然而事实上学了之后由于时间少也没时间更新了)对于动态规划问题,我们顺利地设计出状态和转移只能解决一部分问题,而很多问题需要我们进行时间和空间上的优化才能通过,所以我们要进行动态规划的优化。空间复杂度的优化这不是重点,因为现在空间不是很重要,大部分的题目的空间限制都是足够的,但是不排除有些 毒瘤 特殊的题目卡空间,这就需要我们优化空间复杂度。介绍一下空间复用思想:在很多算法中,尤其是动态规划中,一块空间只会被利用很少的次数然后就毫无用处了原创 2022-01-07 21:25:01 · 1177 阅读 · 0 评论 -
[学习笔记]状态压缩动态规划
推荐阅读:《浅谈状压DP》。简介状态压缩类动态规划(简称状压DP)也是一种很特殊的 DP 算法,其精髓就是将所有物品的状态(一般是选或不选,用01表示,当然也有特殊情况)压缩成一个整数,进行状态的转移并节约空间。使用情境使用情境还是很明显的,有以下特征:每个物品的可能状态数比较少,比如要么选要么不选,就两种可能;数据范围的某一个维度非常小,一般在 20 以内(这个提示可以说是很明显了,要么搜索要么状压)时间复杂度状压 DP 的时间复杂度一般都为指数级,即不能在多项式内的时间复杂度解决,这原创 2022-01-07 21:21:47 · 601 阅读 · 0 评论 -
[学习笔记]树形动态规划
关于树形DP树形动态规划,顾名思义,就是在树的数据结构上做动态规划。由于树天生就是一种递归的数据结构,因此树形 DP 的实现方式通常都是用记忆化搜索。因为转移有 push 和 pull 型两种,自然树形 DP 的转移也有两种顺序:叶 →\rightarrow→ 根,算出一个节点的子节点信息后得到该节点的信息,这一种转移顺序比较常用;根 →\rightarrow→ 叶,这种转移顺序极为少见,但是也不是没有。(路人:你这不是废话树形 DP 的时间复杂度初学者可能会分析错,大多数普通的题目都是 O(原创 2022-01-07 21:20:18 · 818 阅读 · 0 评论 -
[学习笔记]区间类动态规划
区间类动态规划是一种比较特殊的动态规划,以区间作为动态规划的阶段,套路性比较强。怎样的套路?状态的表示一般都是:设 dpi,jdp_{i,j}dpi,j 为从 iii 到 jjj 的区间的XXX。转移的顺序也很固定,基本都是先求小区间,再求大区间。我们甚至可以写出一个区间 DP 的模板://初始化for(int len = 1; len <= n; len++) //枚举区间长度//len的初始值不一定为1,需要看具体情况{ for(int i = 1; i + len -原创 2022-01-07 21:19:21 · 513 阅读 · 0 评论 -
[学习笔记]线性状态动态规划
线性状态动态规划是最基础的一类动态规划,它是具有线性阶段划分的动态规划。个人认为熟练掌握动态规划算法没有什么捷径,就是多做题,多练习,多思考,多理解吧。另外,解决一些问题的一种手段就是将自己已经会的经典问题进行变形转化,以解决该问题。(这好像叫化归思想来着)所以我们就要看一看一些经典的线性状态DP问题:LIS问题,LCS问题和背包问题我知道背包问题理论上应该不算线性状态动态规划的范畴,但是这篇文章不打算写太多内容,所以为了各篇篇幅的统一性就把背包问题放进这里来了。有关这些经典问题的好博客和好文章太原创 2022-01-07 21:18:28 · 436 阅读 · 0 评论 -
[学习笔记]动态规划的一些基本概念和杂项
动态规划是什么?在学习一个算法之前,我们肯定要知道它是什么。在笔者看来,与其说动态规划是一种算法,不如说它是一个思想。怎样的思想呢?将大问题分解成本质相同但规模更小的子问题求解,再根据子问题的解求出原问题的解。这和分治算法的思想极为类似。不做重复的事情。如果一个问题已经被求解过了,我们就不要再求解它了。说到这儿可能很抽象,我们来根据实际问题举一个例子:Luogu P1255 数楼梯(先不要考虑高精度算法。)这是一个十分基础的动态规划问题。首先,如果你不会动态规划,那么你的想法应该是暴原创 2022-01-07 21:17:36 · 477 阅读 · 0 评论
分享