将二维的动态规划问题转话为一维的动态规划问题

#include <iostream>
#include<string.h>
using namespace std;
int sequence[110][110];
int N;
int main()
{
    while(cin>>N)
    {
        int i,j,k;
        int data;
        int ans=-9999;
        for(i=1;i<=N;i++)
        {
            for(j=1;j<=N;j++)
            {
                cin>>data;
                sequence[i][j]=sequence[i][j-1]+data;//sequence[i][j]存储的是第i行J列之前的数据和(包括J列)
            }
        }
        for(i=1;i<=N;i++)
        {
            for(j=i;j<=N;j++)
            {
                int sum=0;
                for(k=1;k<=N;k++)
                {
                    if(sum<0){sum=0;}
                    sum+=sequence[k][j]-sequence[k][i-1];
                    if(sum>ans)
                    {
                        ans=sum;
                    }
                }
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}


相关文章:

  • 2022-12-23
  • 2022-02-23
  • 2021-11-13
  • 2021-10-23
  • 2022-01-25
  • 2021-08-02
  • 2021-08-02
  • 2021-12-13
猜你喜欢
  • 2021-08-18
  • 2021-08-07
  • 2021-07-02
  • 2022-12-23
  • 2021-07-01
相关资源
相似解决方案