蓝桥杯 ACM基础 动态规划(DP) 求最X系列问题的泛型模板

首先介绍一下,什么叫做最X问题。

比如一个人走在一条十字路口,然后走过一条十字路口后又遇见了一条十字路口,如此循环,在知道了走过十字路口的个数以及每条路线的长度后,求解从起点到终点最短(X)路径。

可以参考蚂蚁爬楼梯 :蚂蚁爬楼梯代码

#include<iostream>
using namespace std;
int M=1001;
int n;
int a[M][M];

int func()
{
    int i,j;
    for(i=n-1;i>=1;i--)//从底部开始(自底向上)
        for(j=1;j<=i;j++)
        {
            if(a[i+1][j]>a[i+1][j+1])//此部分想象不到的话,可以画出二维数组帮助理解
            a[i][j]+=a[i+1][j];
            else a[i][j]+=a[i+1][j+1];
        }
        return  a[1][1];//该项一直被覆盖
}

int main(){

    int i,j,max;
    cin>>n;
    n+=n
    for(i=1;i<=n;i++)
        for(j=1;j<=i;j++)
            cin>>a[i][j];
    cout<<func()<<endl; 
    return 0;
} 
posted @ 2019-10-27 15:21  AmosAlbert  阅读(75)  评论(0)    收藏  举报