0
点赞
收藏
分享

微信扫一扫

数塔 HDU - 2084

深夜瞎琢磨 2022-03-11 阅读 66


题目

给定一个具有 N 层的数字三角形,从顶至底有多条路径,每一步可沿左斜线向下或沿右斜线向下,路径所经过的数字之和为路径得分,请求出最大路径得分。

数塔 HDU - 2084_ios

输入

1

5

7

3 8

8 1 0

2 7 4 4

4 5 2 6 5

输出

30

代码

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main ()
{
int x,m,number[m+1][m+1];
memset(number,0,sizeof(number));
cin>>x;
while(x--)
{
cin>>m;
for(int i=1;i<=m;i++)
for(int j=1;j<=i;j++)
cin>>number[i][j];
for(int i=m-1;i>=1;i--)
for(int j=1;j<=i;j++)
number[i][j]+=max(number[i+1][j],number[i+1][j+1]);
cout<<number[1][1]<<endl;
}
return 0;
}

看着好像挺对的,但是,Runtime Error(ACCESS_VIOLATION)。

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main ()
{
int x,m,number[170][170];
cin>>x;
while(x--)
{
cin>>m;
memset(number,0,sizeof(number));
for(int i=1;i<=m;i++)
for(int j=1;j<=i;j++)
cin>>number[i][j];
for(int i=m-1;i>=1;i--)
for(int j=1;j<=i;j++)
number[i][j]+=max(number[i+1][j],number[i+1][j+1]);
cout<<number[1][1]<<endl;
}
return 0;
}

总结:能不开变长数组,就不开变长数组!



举报

相关推荐

0 条评论