基础动态规划
Posted 废柴废柴少女
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础动态规划相关的知识,希望对你有一定的参考价值。
例1:
题目:
从左下走到右上有多少种走法
#include<stdio.h> int a[7][7]; int main() { a[5][1]=1; for(int j=1;j<=5;j++) { for(int i=5;i>=1;i--) { if(i==5&&j==1) a[i][j]=1; else a[i][j]=a[i+1][j]+a[i][j-1];//每个状态都只能从左和下来 } } for(int i=1;i<=5;i++) { for(int j=1;j<=5;j++) { printf("%d ",a[i][j]); } printf("\\n"); } printf("%d\\n",a[1][5]); }
例2:
题目:
数字矩阵从左上到右下,每个格子的权值不同
for(int j=1;j<=m;j++) f[1][j]=a[i][j]+f[1][j-1]; for(int i=2;i<=n;i++) { for(int j=1;j<=m;j++) { f[i][j]=max(f[i-1][j],f[i][j-1])+a[i][j]; } }
例3:
题目:
f[0][0]=0; for(int i=1;i<=n;i++) { for(int j=v;j>=w[i];j--) { f[i][j]=max(f[i-1][j],f[i-1][j-w[i]]+p[i]); } }
以上是关于基础动态规划的主要内容,如果未能解决你的问题,请参考以下文章
代码随想录|day38|动态规划part01● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯