uva_10827_Maximum sum on a torus( 普通DP )
2013-04-26 13:03
381 查看
題目:
最大子矩陣,只不過行和列都可以向外延伸
分析:
簡單的DP,略
Code:
最大子矩陣,只不過行和列都可以向外延伸
分析:
簡單的DP,略
Code:
#include <set> #include <map> #include <cmath> #include <ctime> #include <stack> #include <queue> #include <deque> #include <vector> #include <cstdio> #include <bitset> #include <cstdlib> #include <cstring> #include <algorithm> using namespace std; #define DIR 4 #define DIM 2 #define STATUS 2 #define MAXN 100 + 10 #define oo (~0u)>>1 #define INF 0x3F3F3F3F #define REPI(i, s, e) for(int i = s; i <= e; i ++) #define REPD(i, e, s) for(int i = e; i >= s; i --) static const double EPS = 1e-5; int n; int v[MAXN+MAXN][MAXN+MAXN], f[MAXN+MAXN], var[MAXN+MAXN]; inline int dp(int start, int end) { int s = 0, rst = -INF; var[start-1] = 0; REPI(i, start, end) { if( var[i-1]+f[i] >= 0 ) { var[i] = var[i-1]+f[i]; rst = max(rst, var[i]); } else { var[i] = 0; rst = max(rst, f[i]); } } return rst; } int process(int row, int col) { int rst = -INF; REPI(i, 1, n) { REPI(j, 1, col) { f[j] = 0; } REPI(j, i, i+n-1) { REPI(k, 1, col) { f[k] += v[j][k]; } REPI(k, 1, n) { rst = max(rst, dp(k, k+n-1)); } } } return rst; } void input(void) { scanf("%d", &n); REPI(i, 1, n) { REPI(j, 1, n) { scanf("%d", &v[i][j]); } } REPI(i, 1, n) { REPI(j, n+1, n*2) { v[i][j] = v[i][j-n]; } } REPI(i, n+1, 2*n) { REPI(j, 1, n*2) { v[i][j] = v[i-n][j]; } } } int main(int argc, char const *argv[]) { #ifndef ONLINE_JUDGE freopen("test.in", "r", stdin); #endif int cas; scanf("%d", &cas); REPI(k, 1, cas) { input(); printf("%d\n", process(2*n, 2*n)); } return 0; }
相关文章推荐
- uva 10827 - Maximum sum on a torus(dp)
- UVA - 10827 Maximum sum on a torus(dp最大子矩阵和)
- UVa 10827 Maximum sum on a torus
- UVa 10827 - Maximum sum on a torus
- UVA--10827 Maximum sum on a torus
- uva10827 - Maximum sum on a torus
- uva 10827 Maximum sum on a torus
- UVa 10827 - Maximum sum on a torus
- uva 10827 - Maximum sum on a torus(最大子矩阵升级版)
- UVA 10827 Maximum sum on a torus 可循环的最大连续子矩阵
- UVa 10827 Maximum sum on a torus (贪心&矩阵环中的最大子矩阵和)
- uva10827 - Maximum sum on a torus(圆环上的最大和)
- uva 10827 - Maximum sum on a torus
- UVA - 10827 Maximum sum on a torus
- UVA10827 - Maximum sum on a torus
- UVa 10827 - Maximum sum on a torus
- UVA 10827 Maximum sum on a torus(子矩阵之和变形)
- UVA 10827 Maximum sum on a torus(子矩阵之和变形)(前缀和)
- Maximum sum on a torus Uva 10827
- UVA - 10827 Maximum sum on a torus