首页 > 学院 > 开发设计 > 正文

poj1163

2019-11-11 01:20:56
字体:
来源:转载
供稿:网友

题目大意:

给一个三角形,计算从上到下路径的最大值

解题思路:

简单的动态规划

代码如下:

#include<stdio.h>int main(){ int n,i,j,max; int num[120][120]; int sum[120][120]; scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=i;j++) { scanf("%d",&num[i][j]); } } sum[1][1]=num[1][1]; for(i=2;i<=n;i++) { for(j=1;j<=i;j++) { if(j==1) { sum[i][j]=sum[i-1][j]+num[i][j]; } else if(j==i) { sum[i][j]=sum[i-1][j-1]+num[i][j]; } else { if(sum[i-1][j-1]>sum[i-1][j]) { sum[i][j]=sum[i-1][j-1]+num[i][j]; } else { sum[i][j]=sum[i-1][j]+num[i][j]; } } } } max=0; for(i=1;i<=n;i++) { if(sum[n][i]>max) { max=sum[n][i]; } } PRintf("%d/n",max); return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表