
算法分析与复杂性理论
夕阳下的奔跑517
这个作者很懒,什么都没留下…
展开
-
[POJ]三.D:Multiplication Puzzle石子合并
题目分类:区间DP一、AcWing 5282. 石子合并设有N堆石子排成一排,其编号为1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。状态表示:s[i]=a[1]+a[2]+…+a[i]dp[i][j]=合并区间[i,j]的石子,min cost状态计算:dp[i][j]=min (dp[i][k]+dp[k+1][j]+a[i]+a[i+1]+…+a[j])=min (dp[i][k]+dp[k+1][j]+s[j]-s[i.原创 2020-11-25 22:14:11 · 255 阅读 · 0 评论 -
[POJ]四.A.Maximum sum连续子数组的最大和
动态规划一、AcWing 55. 连续子数组的最大和输入一个 非空 整型数组,数组里的数可能为正,也可能为负。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。思路:动态规划。状态表示:令dp[i]=以a[i]为结尾的子数组,最大和(也就是说a[i]在dp[i]中是一定选的)。状态计算:①若dp[i-1]>0,dp[i]=dp[i-1]+a[i]。②若dp[i-1]<=0,dp[i]=a[i]。即 dp[i]=max( dp[i-1]+a[.原创 2020-11-24 13:32:33 · 166 阅读 · 0 评论 -
动态规划算法
一、主要定律目标:T(n)=aT(n/b)+f(n)a>=1是子问题的个数;b>0是子问题规模减少的因子;f(n)是分割/合并子问题的工作量。recursion tree(重现树):树的层次为k=logbn;在第i层的子问题数为li=ai;在第i层子问题的规模为mi=n/bi。1、case1 总成本由叶子成本决定T(n)=lk*mk=a^logbna=3 b=2 3二、整数乘法三、矩阵乘法四、convolution(卷积)和FFT...原创 2020-11-28 20:39:27 · 4150 阅读 · 4 评论