问题标题: 酷町堂:1290

0
0
已解决
刘乐宸
刘乐宸
新手天翼
新手天翼
#include<iostream>
using namespace std;
int a1[399][399],a2[399][399];//辅助数组 
int f[399][399],f1[399][399];//主要数组 
int main()
{
    int n,m,ans=0; 
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++){
            cin>>a1[i][j];
            if(a1[i][j]==0){
                a1[i][j]=-0x3f3f3f3f;
            }
            a2[i][j]=a2[i][j-1]+a1[i][j];
        }
    for(int i=1;i<=m;i++)
        for(int j=i;j<=m;j++) //第i行到第j行 
            for(int k=1;k<=n;k++){ //第K列的和 
                f1[i][j]=max(f1[i][j],0)+a2[k][j]-a2[k][i-1];
                f[i][j]=max(f[i][j],f1[i][j]);
            }
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            ans=max(ans,f[i][j]); 
    cout<<ans;
    return 0;
} 

 


0
已采纳
黄品翔
黄品翔
初级光能
初级光能

加我QQ,我发你

我要回答