POJ 1050 To the Max ——二维最大子段和

来源:互联网 发布:fi是什么软件 编辑:程序博客网 时间:2024/06/04 20:04

题目链接 点击打开链接


#include<iostream>using namespace std;int a[105][105],dp[105],Max=-100000;int solve(int n){    int i,j,k,t;    for(i=0; i<n; i++)    {        for(j=i; j<n; j++)        {            for(k=0; k<n; k++)            {                dp[k]=0;                for(t=i; t<=j; t++)                {                    dp[k]+=a[t][k];                }            }            int sum=0;            for(k=0; k<n; k++)            {                sum+=dp[k];                if(sum<0)                    sum=0;                if(Max<sum)                {                    Max=sum;                }            }        }    }    return Max;}int main(){    int i,j,n;    cin>>n;    for(i=0; i<n; i++)    {        for(j=0; j<n; j++)        {            cin>>a[i][j];        }    }    cout<<solve(n)<<endl;    return 0;}


0 0