dp

使用dp求解包括有:所有可能,极值(最大、最小),能否,0-1背包

dp四个步骤:初始化,边界值,状态方程,结束值。

dp四中题目类型:

1:矩阵

2:序列

3:双序列

4:0-1背包

矩阵解题思路:f[i][j]和前面关系

例如:求矩阵从左上到右下所有路径。f【i】【j】定义为到[i][j]的所有路径,方向确定:f[i][j]=f[i-1][j]+f[i][j-1],返回f[N][M]

            求走矩阵从左上到右下的最短路径。方向确定:f[i][j]表示到这点的最短路径.f[i][j]=min(f[i-1][j],f[i][j-1])+nums[i][j];

序列解题思路:f[i]递推式;

题如:最大连续子序列,最大子序列和;,最大子序列回文串等等

例如:最大连续子序列的和。f[i]={

                                                                          f[i]=f[i-1]+nums[i];f[i-1]>0

   f[i]=nums[i];i=0||f[i-1]<0                                                                         

                                                             }

返回最大值

双序列:f[i][j]

提醒:1两个序列的编辑距离,2两个序列最长公共子串,3两个序列最长公共子序列

1、f[i][j]=min{f[i-1][j]+1,f[i][j-1]+1,f[i-1][j-1]+1}a[i]!=b[j].或者f[i-1][j-1]{a[i]=b[j]}

2、f[i][j]=f[i-1][j-1]+1(  if a[i]=b[j]    else 0)




3、c[i,j]=0c[i1,j1]+1max(c[i,j1],c[i1,j])i=0 or j=0i,j>0 and  xi=yji,j>0 and xiyj



背包:i前面i个物品的最大容量j 最大值f[i][j]

             f[i][j]=max{f[i-1][j],f[i-1][y-c[i]]+v[i]}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值