#include<iostream>
using namespace std;
int N;
int arr[105][105];
int main()
{
cin >> N;
int tmp;
int max = -20000;
for (int j,i = 0; i < N; i++)
{
tmp = 0;
for (j = 0; j < N; j++)
{
cin >> arr[i][j];
if (tmp > 0) tmp += arr[i][j];
else tmp = arr[i][j];
if (tmp > max) max = tmp;
}
}
for (int i = 0; i < N -1; i++)
{
for (int j = i+1; j < N; j++)
{
tmp = 0;
for (int k = 0; k < N; k++)
{
arr[i][k] += arr[j][k];
if (tmp > 0) tmp += arr[i][k];
else tmp = arr[i][k];
if (tmp > max) max = tmp;
}
}
}
cout << max << endl;
system("PAUSE");
return 0;
}POJ-1050 To the Max~~~~~~~~
最新推荐文章于 2022-09-21 19:55:20 发布
本文介绍了一个通过C++实现的算法,该算法用于解决给定二维数组中找到最大子数组和的问题。通过动态规划的方法,它遍历数组并计算所有可能的子数组之和,最终输出最大的和。
443

被折叠的 条评论
为什么被折叠?



