HDU 2084 数塔(基础dp)

来源:互联网 发布:cocos js 编辑:程序博客网 时间:2024/06/02 07:07

这题是一个基础动态规划,入门题目,思路很简单,就是从下往上找一条最优路径即可,转移公式也很简单,就是挑最大的情况进行存储。

这里博主使用了最基础的二维数组来处理这题,其实这题还可以用一维滚动数组来优化空间,但是鉴于二维数组比较好理解,所以这里我就使用了二维数组处理。

#include<stdio.h>int a[110][110];int max(int a, int b){    if (a > b)        return a;    return b;}int main(){    int n, m;    scanf("%d", &n);    while (n)    {        scanf("%d", &m);        int i, j;        for (i = 0;i < m;i++)        {            for (j = 0;j <= i;j++)            {                    scanf("%d", &a[i][j]);            }        }        for (i = m - 1;i >= 0;i--)        {            for (j = 0;j <= i;j++)            {                a[i][j] += max(a[i + 1][j], a[i + 1][j + 1]);            }        }        printf("%d\n", a[0][0]);        n--;    }    return 0;}
0 0
原创粉丝点击