三个方向的数字三角形,没什么好说。
以下是我的代码:
#include<stdio.h>
#define minint -100000000
long max(long a,long b,long c)


{
long t;
t=(b>c?b:c);
return t>a?t:a;
}
int main()


{

long m,n,eat[203][203]=
{0};
long i,j;
scanf("%ld%ld",&m,&n);
for(i=0;i<=m+1;i++)
for(j=0;j<=n+1;j++)
eat[i][j]=minint;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
scanf("%ld",&eat[i][j]);
for(i=2;i<=m+1;i++)
for(j=1;j<=n+1;j++)
eat[i][j]+=max(eat[i-1][j-1],eat[i-1][j],eat[i-1][j+1]);
printf("%ld\n",max(eat[m][n/2],eat[m][n/2+1],eat[m][n/2+2]));
return 0;
}

posted on 2010-01-06 19:18
lee1r 阅读(169)
评论(1) 编辑 收藏 引用 所属分类:
题目分类:动态规划