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

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

#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;
}