題目大意:求出給定矩陣中最大的數字和。
http://blog.csdn.net/piaoyi0208/article/details/7728972 寫的很好,帶有分析,不懂我代碼的可以看一下。
如下代碼:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int a[120][120],n,temp[110],maxx;
int solve()
{
int sum=0,Max=0;
for(int i=1;i<=n;i++)
{
sum+=temp[i];
if(sum<0)
sum=0;
if(sum>Max)
Max=sum;
}
return Max;
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&a[i][j]);
maxx=0;
for(int i=1;i<=n;i++)
{
memset(temp,0,sizeof(temp));
for(int j=i;j<=n;j++)
{
for(int k=1;k<=n;k++)
{
temp[k]+=a[j][k];
}
if(maxx<solve())
maxx=solve();
}
}
cout<<maxx<<endl;
}
//while(1);
return 0;
}