poj 1163 The Triangle

来源:互联网 发布:诸宸的悲剧 知乎 编辑:程序博客网 时间:2024/06/07 23:56

自下之上求出每一个元素对应的最大值
dp[i][j] = max (dp[i][j]+dp[i-1][j],dp[i][j]+dp[i-1][j+1]);

#include<iostream>#include<string.h>#include<math.h>#include<fstream>#include<algorithm>#include<stdio.h>#include<queue>#include<vector> #define MAXSIZE 100using namespace std;int n = 0;int dp[101][101]; int main(){    //freopen("data_1163.txt","r",stdin);    while(scanf("%d", &n) != EOF)    {        memset(dp, 0, sizeof(dp));        for (int i = 1; i <=n; i++)        {            for (int j = 1; j <= i; j++)            {                scanf("%d", &dp[i][j]);            }        }        for (int i = n; i >= 2; i--)        {            for (int j = i - 1; j >= 1; j--)            {                dp[i - 1][j] = max (dp[i-1][j]+dp[i][j], dp[i-1][j]+dp[i][j+1]);            }        }        printf("%d\n", dp[1][1]);    }    return 0;}
0 0
原创粉丝点击