uva 10755 DP

来源:互联网 发布:三菱gxworks3软件下载 编辑:程序博客网 时间:2024/06/05 10:53

三维的最大子矩阵和

思路就是首先枚举两个面 然后降到二维,然后再枚举另外两个面,降到一维,降到一维之后就是求最大连续子序列和

妈蛋啊,这题的坑在于,如果你输出格式错误的话是WA啊!!!这尼玛不是坑爹吗!

就不告诉你正确输出格式,自己看去,擦

AC代码如下:

#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;const long long MAX = 1LL << 60;int A, B, C;long long sum1[22][22][22], sum2[22][22], sum3[22];long long solve_1(){    long long ans = sum3[1], now = min( 0LL, sum3[1] );    for( int i = 1; i <= C; i++ ){        sum3[i] += sum3[i-1];    }    for( int i = 2; i <= C; i++ ){        ans = max( ans, sum3[i] - now );        now = min( now, sum3[i] );    }    return ans;}long long solve_2(){    for( int i = 1; i <= B; i++ ){        for( int j = 1; j <= C; j++ ){            sum2[i][j] += sum2[i-1][j];        }    }    long long ans = -MAX;    for( int i = B; i >= 1; i-- ){        for( int j = i - 1; j >= 0; j-- ){            memset( sum3, 0, sizeof( sum3 ) );            for( int k = 1; k <= C; k++ ){                sum3[k] = sum2[i][k] - sum2[j][k];            }            ans = max( ans, solve_1() );        }    }    return ans;}long long solve_3(){    long long ans = -MAX;    for( int i = A; i >= 1; i-- ){        for( int j = i - 1; j >= 0; j-- ){            memset( sum2, 0, sizeof( sum2 ) );            for( int k = 1; k <= B; k++ ){                for( int l = 1; l <= C; l++ ){                    sum2[k][l] = sum1[i][k][l] - sum1[j][k][l];                }            }            ans = max( ans, solve_2() );        }    }    return ans;}int main(){    int T;    scanf( "%d", &T );    while( T-- ){        scanf( "%d%d%d", &A, &B, &C );        memset( sum1, 0, sizeof( sum1 ) );        for( int i = 1; i <= A; i++ ){            for( int j = 1; j <= B; j++ ){                for( int k = 1; k <= C; k++ ){                    scanf( "%lld", &sum1[i][j][k] );                    sum1[i][j][k] += sum1[i-1][j][k];                }            }        }        printf( "%lld\n", solve_3() );        if( T ) printf( "\n" );    }    return 0;}


0 0
原创粉丝点击