首页 > 代码库 > POJ3176:Cow Bowling(数字三角形问题)
POJ3176:Cow Bowling(数字三角形问题)
地址:http://poj.org/problem?id=3176
题目解析:没什么好说的,之前上课时老师讲过。从下往上找,每一个三角形的顶点可由两个角加上顶点的值 两种方式得到 ,用dp数组保存下最大值即可。
#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <queue>#include <math.h>#define N 400#define inf 0x3f3f3f3ftypedef int ll;using namespace std;int a[N][N],dp[N][N];int main(){ int n; while(scanf("%d",&n)!=EOF) { for(int i=1; i<=n; i++) { for(int j=1; j<=i; j++) scanf("%d",&a[i][j]); } for(int i=1; i<=n; i++) { dp[n][i]=a[n][i]; } for(int i=n-1; i>=1; i--) { for(int j=1; j<=i; j++) { dp[i][j]=max(a[i][j]+dp[i+1][j],a[i][j]+dp[i+1][j+1]); } } printf("%d\n",dp[1][1]); } return 0;}
POJ3176:Cow Bowling(数字三角形问题)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。