hdu 1081 To The Max
2017-12-26 21:32
375 查看
题意:给一个矩阵,元素有正有负,求最小子矩阵和
思路:优化暴力
暴力一个维度,剩下一个一维的就当最大连续和来做
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[130][130];
int n,cur;
while(cin>>n)
{
for(int i=1;i<=n;i++)
{
int su=0;
for(int j=1;j<=n;j++)
{
cin>>cur;su+=cur;a[i][j]=su;
}
}
int ma=0;
for(int i=0;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
int tsu=0,tma=-100000;
for(int p=1;p<=n;p++)
{
tsu+=(a[p][j]-a[p][i]);
if(tsu>0)
{
if(tsu>tma)tma=tsu;
}
else tsu=0;
}
if(tma>ma)ma=tma;
}
}
cout<<ma<<endl;
}
return 0;
}
思路:优化暴力
暴力一个维度,剩下一个一维的就当最大连续和来做
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a[130][130];
int n,cur;
while(cin>>n)
{
for(int i=1;i<=n;i++)
{
int su=0;
for(int j=1;j<=n;j++)
{
cin>>cur;su+=cur;a[i][j]=su;
}
}
int ma=0;
for(int i=0;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
int tsu=0,tma=-100000;
for(int p=1;p<=n;p++)
{
tsu+=(a[p][j]-a[p][i]);
if(tsu>0)
{
if(tsu>tma)tma=tsu;
}
else tsu=0;
}
if(tma>ma)ma=tma;
}
}
cout<<ma<<endl;
}
return 0;
}
相关文章推荐
- HDU 1081 To The Max
- HDU1081——To The Max
- hdu 1081 To The Max
- HDU1081 To The Max
- HDU1081 - To The Max - 状态压缩DP【经典】
- HDU 1081 To The Max(dp最大子矩阵和)
- HDU 1081 To The Max(DP)
- HDU - 1081 - To The Max
- hdu 1081 To The Max(二维最大连续和)
- HDU 1081 To The Max
- hdu 1081 To The Max
- HDU 1081 To The Max-动态规划-[解题报告] C++
- HDU 1081 To The Max
- hdu 1081 To The Max
- hdu 1081 To The Max
- hdu 1081 To The Max(子矩阵最大和)
- HDU 1081 To The Max(二维最大字段和,转化为一维)
- HDU-1081-To The Max(二维最大子段和)
- hdu 1081 To The Max(最小子阵和)
- HDU - 1081 To The Max ( 最大子矩阵)