
基础算法
只有孔雀没有翎
在校学生一枚
展开
-
线段树-快速总结-算法笔记
主要的目的是记录一哈二维线段树,在此之前先简单总结一下一维线段树。线段树线段树顾名思义,处理线段(或者称为区间)的整体属性的一种数据结构。主要操作为-范围更新与查询,时间复杂度为logn级别的。构建过程为:这棵树将所定范围(区间)不断进行二分,直至只包含一个值作为叶节点。其他的非叶节点表示线段经过二分过后的某个区间。更新操作:将所给的区间,与线段树节点区间比较所给区间包含树节点区间,则处理。区间与树节点区间不相交,丢掉。区间有交叉,递归到子节点,进行相同步骤。//有lazy标记优化原创 2020-06-29 15:22:59 · 260 阅读 · 0 评论 -
网络流-最大流最小割(带证明)-算法笔记
文章目录流与割定义割定义割的容量定义流的定义流量最大流寻找算法引理贪心算法最大流等于最小割证明(重点)代码示例流与割定义割定义对于图Graph(V,E)s-t割是对顶点集V的一个划分,使得s属于A,t属于B.割的容量定义cap(A,B)=∑c(e) e out of A 即A的流出容量, 用c表示最小割,找到最小容量的割流的定义一个s-t流满足:对于每个边来讲0大于等于f(e)大于等于c(e)对于每个顶点属于除了v属于V/{s,t} 他们的出流量都等于入流量流量等于s的所有输原创 2020-06-24 00:02:55 · 1486 阅读 · 0 评论 -
最短路径+负圈-POJ3259 虫洞问题-图算法基础专项(2)
文章目录bellman-ford最短路径算法图表示方法例题POJ 3259(虫洞问题,判断负圈是否存在)代码bellman-ford最短路径算法bellman-ford 算法,是求单源点最短路径的算法。我们设从起点到其他点i的最短路为d[i],显然满足下列等式d[i]=min{d[j]+cost(j,i)∣e=(j,i)∈E}d[i]=min \{ d[j]+cost(j,i) | e=(j,i) \in E \}d[i]=min{d[j]+cost(j,i)∣e=(j,i)∈E}含义是到一原创 2020-05-11 19:22:58 · 462 阅读 · 0 评论 -
最短路径-POJ2139-图算法基础专项
文章目录图的表示最短路径问题例题POJ 2139图的表示邻接矩阵v[i][j]v[i][j]v[i][j],i和j表示从点i到点j的距离或开销特点能直观的看到两点之前有没有边缺点:可能内存开销比较大,尤其是对于那种稀疏图来讲最短路径问题Floyd算法可以在O(V3)O(V^3)O(V3)时间内求得任意两点的最短路径。这个方法应用了动态规划思想,在之前动态规划专项中普及过这类问题的思考方式。在此就直接说结论了,如有问题可以参考之前的背包问题。首先我们定义dp[k][i][j]dp[k][原创 2020-05-10 18:43:12 · 402 阅读 · 0 评论 -
二分搜索法-POJ3258-算法笔记
二分搜索法是一种求最优解的方法。思路其思路是通过二分法,不断缩小解的可能范围,直到最优解。其特点是,解有一定顺序特征,比如越大越可能是解,并且解可快速验证。我们就可以假设,一个中间大小的数,验证是否是解,然后缩小一半范围。典型问题,给定长度n的单调不降序列a0…an−1a_0…a_{n-1}a0…an−1和一个数K,求满足ai≥ka_i \ge kai≥k条件下最小的i。不存在就...原创 2020-05-04 23:30:04 · 328 阅读 · 0 评论 -
基础动态规划-完全背包问题+POJ1742(递推式优化)
完全背包问题一共有n种价值和重量为vi,wiv_i,w_ivi,wi的物品,如果我们的背包最大能放V的重量,那么如何才能取价值最大呢?这种问题规模,可以用两种维度的变量控制,比如种类和体积前i种体积为v的最大重量dp[i][v]另一种思路种类和质量前i种,质量为w,最少体积dp[i][w]讨论第一种控制方法显然dp[i][v]=maxk(dp[i][v−k∗vi])+k∗w...原创 2020-04-30 20:27:06 · 754 阅读 · 0 评论 -
基础动态规划-POJ2385(Apple Catching)
描述DescriptionIt is a little known fact that cows love apples. Farmer John has two apple trees (which are conveniently numbered 1 and 2) in his field, each full of apples. Bessie cannot reach the app...原创 2020-04-29 22:20:33 · 223 阅读 · 0 评论 -
基础动态规划-POJ2229-计数问题
文章目录基础的动态规划原理实现方法1.记忆化搜索(递归的思想)2.递推关系式3.例子步骤有关计数的动态规划问题POJ 2229解题思路错误的思路正确的思路边界条件实现基础的动态规划原理动态规划的思想的是把一个问题分解为规模小一点的同样的问题,然后找出小规模的问题和大规模问题的联系,从而递归地得出大规模问题的解。实现方法1.记忆化搜索(递归的思想)从动态规划的思想上理解,通过搜索的方式,...原创 2020-04-28 19:37:23 · 330 阅读 · 0 评论 -
快速幂-(POJ3641,POJ1995)-算法笔记
文章目录快速幂原理快速幂例子例题两道POJ3641POJ1995快速幂原理快速幂顾名思义就是快速计算xnx^nxn的方法。我们用一个栗子来了解其原理。xnx^nxn,首先我们试着用二进制表示n,如n=b1010n=b10+b1000 即n=2+8自然有xn=x2∗x8x^n =x^2*x^8xn=x2∗x8接着我们这样想,n的二进制表示每一位都对应着x2,x4,…x8x^2,x^4...原创 2020-04-27 18:59:46 · 370 阅读 · 0 评论