poj1163

来源:互联网 发布:殷保华一线法公式源码 编辑:程序博客网 时间:2024/06/06 19:23

题目大意:

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

解题思路:

简单的动态规划

代码如下:

#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;}
0 0
原创粉丝点击