POJ 1163The Triangle

来源:互联网 发布:封天战神法器进阶数据 编辑:程序博客网 时间:2024/06/08 00:33

题意:

给出一个三角形的数堆,问从顶走到底所能获得的最大价值是多少。

思路:

DP。从底开始dp,dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+a[i][j]。

#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int MAX=105;int n;int a[MAX][MAX];int dp[MAX][MAX];int main(){scanf("%d",&n);for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){scanf("%d",&a[i][j]);}}memset(dp,0,sizeof(dp));for(int i=n;i>=1;i--){for(int j=1;j<=i;j++){dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+a[i][j];}}printf("%d\n",dp[1][1]);return 0;}


0 0
原创粉丝点击