从下往上,从右往左。比较2数和,较大的替换原来数(2维数组加来加去还是很头晕的~)。
据说是动态规划的简单题~
#include <stdio.h>
int f[111][111];
int rec(int m)
{
int i;
if(m==1)
return 1;
for(i=m;i>=2;i--)
{
if(f[m-2][i-2]+f[m-1][i-1]>f[m-2][i-2]+f[m-1][i-2])
f[m-2][i-2]+=f[m-1][i-1];
else
f[m-2][i-2]+=f[m-1][i-2];
}
return rec(m-1);
}
int main()
{
int i,j,n,m;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
for(i=0;i<m;i++)
{
for(j=0;j<=i;j++)
scanf("%d",&f[i][j]);
}
rec(m);
printf("%d\n",f[0][0]);
}
return 0;
}