![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小翟的算法笔记
qdu_zhaiH
我想去更高的地方看一看 哪怕再累再苦
展开
-
动态规划(详细总结+例题)
递归到动规的一般转化方法:递归函数 有n个参数,就定义一个n为的数组,数组的下标是递归函数参数的取值范围,数组元素的值是递归函数的返回值,这样就可以从边界值开始,逐步填充数组,相当于计递归函数值的逆过程。动态规划解题的一般思路:1.将原问题分解为子问题把原问题分解为若干子问题,子问题和原问题形式相同或类似,只不过是规模变小了,子问题都解决,原问题即解决(数字三角形例)子问题的解...原创 2019-04-10 14:29:24 · 870 阅读 · 0 评论 -
差分(总结+例题)
首先,给出一个问题:给出n个数,再给出m个询问,每个询问给出l,r,x,要求你在l到r上每一个值都加上x,而只给你O(n)的时间范围,怎么办?思考一下:如果暴力,卡一下l和r,随随便便就是O(n^2)。用线段树或树状数组搞一搞,抱歉,这个复杂度是O(mlogn)的,还是不行(虽然他们解决别的题目很NB)差分,没错,就是标题,很高兴O(n)+常数......差分就是将数列中的每一项分...原创 2019-04-07 10:05:40 · 2114 阅读 · 0 评论 -
深搜(总结+例题)
所谓深搜(也叫回溯法)就是采用的是“一直往下走,走不通了就掉头,换一条路再往下走”总结来说就是递归的枚举深度优先搜索的实质就是穷举,按照一定的顺序和规则不断地去尝试,直到找到问题的解。对于一个问题的第一个状态叫做初始状态,最后要求的状态叫做目的状态。在搜索的过程中,对当前状态进行检测,如果当前状态满足目的状态,那么这个当前状态就是结果之一。为什么要取消标记:深搜搜到底以后,...原创 2019-04-02 20:17:52 · 12483 阅读 · 1 评论 -
单调栈(总结+例题)
定义:单调栈,顾名思义,是栈内元素保持一定单调性(单调递增或单调递减)的栈。这里的单调递增或递减是指的从栈顶到栈底单调递增或递减。既然是栈,就满足后进先出的特点。与之相对应的是单调队列。入栈操作: 1,3,2,4,5,8,6,3(单调递增栈)则如果栈为空或入栈元素值小于栈顶元素值,则入栈;否则,如果入栈则会破坏栈的单调性,则需要把比入栈元素小的元素全部出栈。单调递减的栈反之。单调栈...原创 2019-03-31 16:05:28 · 1310 阅读 · 0 评论 -
尺取法(总结+模板+例题)
什么是尺取法:反复地推进区间的开头和末尾,来求取满足条件的最小区间的方法称为尺取法1、什么情况下能使用尺取法? 2、何时推进区间的端点? 3、如何推进区间的端点? 4、何时结束区间的枚举?尺取法通常适用于选取区间有一定规律,或者说所选取的区间有一定的变化趋势的情况,通俗地说,在对所选取区间进行判断之后,我们可以明确如何进一步有方向地推进区间端点以求解满足条件的区间,...原创 2019-03-31 11:06:09 · 802 阅读 · 0 评论 -
回溯(总结+例题)
参考博客:https://blog.csdn.net/sinat_27908213/article/details/80599460回溯法有通用解法的美称,对于很多问题,如迷宫等都有很好的效果。回溯算法实际上一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回(也就是递归返回),尝试别的路径。许多复杂的,规模较大的问题都可以使用回溯...原创 2019-05-04 16:16:29 · 544 阅读 · 0 评论 -
最小生成树(总结+例题)
何谓最小生成树对于一个带权连通无向图G中的不同生成树,各棵树的边上的权值之和可能不同,边上的权值之和最小的树称之为该图得最小生成树一、概念生成树:一个连通图的生成树,指的是该图的一个子图,它包含图的所有顶点(N个),但只有足够把所有顶点连接在一起的N-1条边。 如果再向其中添加一条边,那么必定会有环形成。最小生成树:一个连通图的所有生成树中,所有边的权值加起来最小的生成树,称为最小...原创 2019-05-13 21:19:23 · 4602 阅读 · 0 评论 -
快速幂+矩阵快速幂(总结+例题)
1.快速幂以求a的b次方来介绍:首先把b转换成二进制数该二进制数第i位的权为 2^i - 1 .比如 : 11的二进制是101111 = 2³×1 + 2²×0 + 2¹×1 + 2º×1所以假设我们要求a^b,那么其实b是可以拆成二进制的,该二进制数第i位的权为2^(i-1),例如当b==11时 a^11=a^(2^0+2^1+2^3)模板:ll p...原创 2019-05-14 16:19:39 · 10539 阅读 · 6 评论 -
基础背包问题
01背包问题:特点就是每个物品只能用一次,只能是选或者不选/*dp[i][j] 只看前i个物品,的总体积是j 的情况下总价值最大是多少result = max(dp[n][0~v])不选第i 个 dp[i][j] = dp[i-1][j]选第i 个 dp[i][j] = dp[i-1][j-v[i]]+w[i]dp[i][j] = max(dp[i-1][j],dp[i...原创 2019-08-25 20:51:47 · 279 阅读 · 0 评论