基础动态规划

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. 使用最小花费爬楼梯

动态规划基础练习(lc509,lc70,lc746,lc62,lc63,lc343,lc96)

动态SQL基础概念复习(Javaweb作业5)

动态规划令你战栗的神奇算法:动态规划基础

动态规划问题3--多重背包