Newguy


私信TA

用户名:772007765

访问量:88800

签 名:

已秃人士

等  级
排  名 29
经  验 15363
参赛次数 3
文章发表 92
年  龄 0
在职情况 在职
学  校
专  业

  自我简介:

#include <stdio.h>      //动态规划
#define MAX 101
int maxSum[MAX][MAX];
int m;
int D[MAX][MAX];
int Maxsum(int i,int j)
{
	if (maxSum[i][j]!=-1)
		return maxSum[i][j];
	if (i==m)
		maxSum[i][j]=D[i][j];
	else
	{
		int x = Maxsum(i+1,j);
		int y = Maxsum(i+1,j+1);
		maxSum[i][j]=((x>y)?x:y)+D[i][j];
	}
	return maxSum[i][j];
}
int main()
{
	int i,j,n,m,o;
	scanf("%d",&n);
	for (o=1;o<=n;o++)
	{
		scanf("%d",&m);
		for (i=1;i<=m;i++)
		{
			for (j=1;j<=i;j++)
			{
				scanf("%d",&D[i][j]);
				maxSum[i][j]=-1;
			}
		}
		printf("%d\n",Maxsum(1,1));
	}
	return 0;
}

解题思路:





注意事项:





参考代码:

 

0.0分

0 人评分

  评论区

  • «
  • »