最简单的DP问题(POJ1163)

来源:互联网 发布:淘宝美工主页设计 编辑:程序博客网 时间:2024/04/29 19:08

对动态规划一直很抵触,希望通过这道题能够逐渐学好这一算法。
题目连接:点击打开链接
转换思维,不是从顶部往下走,而是从底部往上推,不断的缩小问题的规模。


代码如下:


#include <stdio.h>#include <stdlib.h>#define max(x,y) (x>y?x:y)int a[110][110];int main(){    int i, j, n;    //freopen("a.txt", "r", stdin);    while(scanf("%d", &n)!=EOF){        for(i=0; i<n; i++){            for(j=0; j<=i; j++){                scanf("%d",&a[i][j]);            }        }        for(i=n-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]);    }    return 0;}


原创粉丝点击