hdu 1081 矩阵最大连续子序列

来源:互联网 发布:网络贷款不还会判刑么 编辑:程序博客网 时间:2024/06/07 01:46

问题描述:二位平面图,每一个坐标都有值,正值或负值,求任意矩形中和的最大值问题

解决方案:求解图中每一个坐标为起点,求任意长度宽度的矩形的和

#include<iostream>#include<cstdio>using namespace std;int in[101][101],d[101][101],maxx,n;void ope(int bx, int by){        memset(d,0,sizeof(d));        int i,j,k;        for(i=bx; i<=n; i++)        for(j=by; j<=n; j++)        {                  d[i][j]=d[i-1][j]+d[i][j-1]-d[i-1][j-1]+in[i][j];                  if( d[i][j] > maxx )  maxx=d[i][j];        }        }int main(){    int i,j,k;    while(cin >> n)    {    for(i=1; i<=n; i++)    for(j=1; j<=n; j++)    cin >> in[i][j];    //for(k=1; k<=n; k++){for(int l=1; l<=n; l++)cout<<in[k][l]<<" ";cout << endl;}    maxx=-11111;    for(i=1; i<=n; i++)             for(j=1; j<=n; j++)             {                      ope(i,j);             }    cout << maxx << endl;    }    return 0;}