Ural_1146. Maximum Sum (DP)
2011-11-05 19:55
190 查看
/*题意是求最大子矩阵,表示线代没学好,好在不影响这道题。这题的主要思路就是二维化成一维。把二维数组前一列的元素累加到后边一列上,例如: 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 处理后就是: 0 -2 -9 -9 9 11 5 7 -4 -3 -7 -6 -1 7 7 5 然后就是 dp[i][j] = max(dp[i][j-1], 0) + sum[j]; My Code:*/ #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> using namespace std; const int N = 110; const int inf = 0x7fffffff; int sum ; int main() { //freopen("data.in", "r", stdin); int n, i, j, x, max, flag, k; while(~scanf("%d", &n)) { memset(sum, 0, sizeof(sum)); for(i = 1; i <= n; i++) { for(j = 1; j <= n; j++) { scanf("%d", &x); sum[i][j] = sum[i][j-1] + x; } } max = -inf; for(i = 1; i <= n; i++) { for(j = 1; j <= i; j++) { for(flag = 0, k = 1; k <= n; k++) { flag += sum[k][i] - sum[k][j-1]; if(flag > max) max = flag; if(flag < 0) flag = 0; } } } printf("%d\n", max); } return 0; }
相关文章推荐
- 【bzoj1814】Ural 1519 Formula 1 插头dp
- ural 1203. Scientific Conference(dp)给定N个区间,求最大的不相交的区间数
- Ural 1519. Formula 1 优美的插头DP
- URAL 1427. SMS (线性dp)
- Ural 1057. Amount of Degrees(数位DP)
- URAL 1057 Amount of Degrees (数位DP)
- ural 1017. Staircases(dp)
- Ural 1519 Formula 1( 插头dp )
- ural 1519 Formula 1(插头dp)
- ural 1119. Metro(dp)
- URAL 2052 . Physical Education (数位DP + 二分)
- URAL 1057 Amount of Degrees 数位DP *
- URAL 1009 K-based Numbers dp练习
- timus 1346. Intervals of Monotonicity URAL 解题报告 DP 小水题,阅读理解
- ural1057 Amount of Degrees 【数位dp】论文例题
- Ural 2018The Debut Album(DP)
- URAL 1658. Sum of Digits(简单dp)
- URAL 1225 Flags (DP动态规划)
- URAL 1073 Square Country(DP)
- ural 1018(树形dp)