zoj1074 TO THE MAX(动态规划)

1、问题描述
2、用数组b表示数组a的i~j行对应列元素的和,然后对数组b计算最大字段和,这就将二维动态规划问题转化为一维动态规划的问题。

#include 
#include
using namespace std; 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
#define N 101

int main(int argc, char** argv) {
    int a[N][N];
    int b[N];
    int n;
    int i,j,k;
    while(cin>>n){
        for(int i=0;ifor(int j=0;jcin>>a[i][j];
        }

        int max=-1000;
        for(int i=0;imemset(b,0,sizeof(b));
        for(j=i;jint sum=0;
            for(k=0;kif(sum<0)sum=b[k];
                if(sum>max)max=sum;
            }
        }           
        }

    cout<return 0;
}

你可能感兴趣的:(zoj)