c语言dp状态转移方程,动态规划(dp) 之 状态转移方程

-----机器分配问题

F[I,j]:=max(f[i-1,k]+w[i,j-k])

2. 资源问题2

------01背包问题

F[I,j]:=max(f[i-1,j-v[i]]+w[i],f[i-1,j]);

3. 线性动态规划1

-----朴素最长非降子序列

F[i]:=max{f[j]+1}

4. 剖分问题1

-----石子合并

F[i,j]:=min(f[i,k]+f[k+1,j]+sum[i,j]);

5. 剖分问题2

-----多边形剖分

F[I,j]:=min(f[i,k]+f[k,j]+a[k]*a[j]*a[i]);

6. 剖分问题3

------乘积最大

f[i,j]:=max(f[k,j-1]*mult[k,i]);

7. 树型动态规划1

-----加分二叉树 (从两侧到根结点模型)

F[I,j]:=max{f[I,k-1]*f[k+1,j]+c[k]}

8. 递推天地2

------数的划分

f[i,j]:=f[i-j,j]+f[i-1,j-1];

9. 线型动态规划3

-----最长公共子串,LCS问题

f[i,j]={0 (i=0)&(j=0);

f[i-1,j-1]+1 (i>0,j>0,x[i]=y[j]);

max{f[i,j-1]+f[i-1,j]}} (i>0,j>0,x[i]<>y[j]);

10. 资源问题4

-----装箱问题(判定性01背包)

f[j]:=(f[j] or f[j-v[i]]);

11. 数字三角形1

-----朴素の数字三角形

f[i,j]:=max(f[i+1,j]+a[I,j],f[i+1,j+1]+a[i,j]);

12. 双向动态规划1

数字三角形3

-----小胖办证

f[i,j]:=max(f[i-1,j]+a[i,j],f[i,j-1]+a[i,j],f[i,j+1]+a[i,j])

13. 数字三角形4

-----过河卒

//边界初始化

f[i,j]:=f[i-1,j]+f[i,j-1];

14. 递推天地3

-----情书抄写员

f[i]:=f[i-1]+k*f[i-2]

15 线性动态规划5

-----隐形的翅膀

min:=min{abs(w[i]/w[j]-gold)};

if w[i]/w[j]16 最短路1

-----Floyd

f[i,j]:=max(f[i,j],f[i,k]+f[k,j]);

ans[q[i,j,k]]:=ans[q[i,j,k]]+s[i,q[i,j,k]]*s[q[i,j,k],j]/s[i,j];

17 线性动态规划

------合唱队形

两次F[i]:=max{f[j]+1}+枚举中央结点

1. 资源问题1

-----机器分配问题

F[I,j]:=max(f[i-1,k]+w[i,j-k])

2. 资源问题2

------01背包问题

F[I,j]:=max(f[i-1,j-v[i]]+w[i],f[i-1,j]);

3. 线性动态规划1

-----朴素最长非降子序列

F[i]:=max{f[j]+1}

4. 剖分问题1

-----石子合并

F[i,j]:=min(f[i,k]+f[k+1,j]+sum[i,j]);

5. 剖分问题2

-----多边形剖分

F[I,j]:=min(f[i,k]+f[k,j]+a[k]*a[j]*a[i]);

6. 剖分问题3

------乘积最大

f[i,j]:=max(f[k,j-1]*mult[k,i]);

7. 树型动态规划1

-----加分二叉树 (从两侧到根结点模型)

F[I,j]:=max{f[I,k-1]*f[k+1,j]+c[k]}

8. 递推天地2

------数的划分

f[i,j]:=f[i-j,j]+f[i-1,j-1];

9. 线型动态规划3

-----最长公共子串,LCS问题

f[i,j]={0 (i=0)&(j=0);

f[i-1,j-1]+1 (i>0,j>0,x[i]=y[j]);

max{f[i,j-1]+f[i-1,j]}} (i>0,j>0,x[i]<>y[j]);

10. 资源问题4

-----装箱问题(判定性01背包)

f[j]:=(f[j] or f[j-v[i]]);

11. 数字三角形1

-----朴素の数字三角形

f[i,j]:=max(f[i+1,j]+a[I,j],f[i+1,j+1]+a[i,j]);

12. 双向动态规划1

数字三角形3

-----小胖办证

f[i,j]:=max(f[i-1,j]+a[i,j],f[i,j-1]+a[i,j],f[i,j+1]+a[i,j])

13. 数字三角形4

-----过河卒

//边界初始化

f[i,j]:=f[i-1,j]+f[i,j-1];

14. 递推天地3

-----情书抄写员

f[i]:=f[i-1]+k*f[i-2]

15 线性动态规划5

-----隐形的翅膀

min:=min{abs(w[i]/w[j]-gold)};

if w[i]/w[j]16 最短路1

-----Floyd

f[i,j]:=max(f[i,j],f[i,k]+f[k,j]);

ans[q[i,j,k]]:=ans[q[i,j,k]]+s[i,q[i,j,k]]*s[q[i,j,k],j]/s[i,j];

17 线性动态规划

------合唱队形

两次F[i]:=max{f[j]+1}+枚举中央结点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值