uva 10827(循环矩阵最大连续子矩阵和)
2014-09-16 00:47
363 查看
题意:求一个矩阵环(循环矩阵)的最大子矩阵和。
题解:uva 108的加强版。。初做dp,围观大牛做法,因为是循环矩阵,所以将矩阵扩大一倍,由四个初始矩阵组成,然后开始在n*n的矩阵内选起始点,然后选择矩阵的长宽(都要小于n),计算过程中保存计算结果,dp基本思想。
#include <stdio.h>
#include <string.h>
const int N = 200;
const int INF = -0x3f3f3f3f;
int main() {
int t, n, s
, maxx, sum
, sum2
;
scanf("%d", &t);
while (t--) {
maxx = INF;
scanf("%d", &n);
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
scanf("%d", &s[i][j]);
s[i + n][j] = s[i][j + n] = s[i + n][j + n] = s[i][j];
}
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
for (int p = 0; p < n; p++)
for (int q = 0; q < n; q++) {
sum[q] = s[q + i][p + j];
if (q)
sum[q] += sum[q - 1];
if (p)
sum2[q] += sum[q];
else
sum2[q] = sum[q];
if (sum2[q] > maxx)
maxx = sum2[q];
}
printf("%d\n", maxx);
}
}
题解:uva 108的加强版。。初做dp,围观大牛做法,因为是循环矩阵,所以将矩阵扩大一倍,由四个初始矩阵组成,然后开始在n*n的矩阵内选起始点,然后选择矩阵的长宽(都要小于n),计算过程中保存计算结果,dp基本思想。
#include <stdio.h>
#include <string.h>
const int N = 200;
const int INF = -0x3f3f3f3f;
int main() {
int t, n, s
, maxx, sum
, sum2
;
scanf("%d", &t);
while (t--) {
maxx = INF;
scanf("%d", &n);
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) {
scanf("%d", &s[i][j]);
s[i + n][j] = s[i][j + n] = s[i + n][j + n] = s[i][j];
}
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
for (int p = 0; p < n; p++)
for (int q = 0; q < n; q++) {
sum[q] = s[q + i][p + j];
if (q)
sum[q] += sum[q - 1];
if (p)
sum2[q] += sum[q];
else
sum2[q] = sum[q];
if (sum2[q] > maxx)
maxx = sum2[q];
}
printf("%d\n", maxx);
}
}
相关文章推荐
- UVA 10827 Maximum sum on a torus 可循环的最大连续子矩阵
- UVa 10827 Maximum sum on a torus (贪心&矩阵环中的最大子矩阵和)
- UVA 10827 Maximum sum on a torus 最大矩阵和
- UVA-10755 Garbage Heap 三维子矩阵最大和
- uva 10827 球面最大子矩形
- uva10827-Maximum sum on a torus(矩阵最大和的变形)
- UVa 836 - Largest Submatrix ( 最大01矩阵)
- uva 108(最大连续矩阵和)
- 最大费用循环流(帮助小罗拉,uva 1659)
- 例题1.22 最大子矩阵 City Game UVALive - 3029 扫描法
- UVA - 10827 Maximum sum on a torus(dp最大子矩阵和)
- UVa108 UVa10827 最大连续子矩阵和
- UVA 10074 Take the Land(最大子矩阵和变形)
- UVA11082 矩阵展开,最大流
- URAL_1146/uva_108 最大子矩阵 DP 降维
- uva108 Maximum sum(矩阵最大和)
- uva 10827 求和最大可延伸的子矩形
- uva1330 在一个大的矩阵中寻找面积最大的子矩阵
- UVA-10074 最大子矩阵 DP
- UVA 10827 Maximum sum on a torus(子矩阵之和变形)(前缀和)