首页 > 代码库 > HDU 1559 - 最大子矩阵
HDU 1559 - 最大子矩阵
拍水题到现在还N个WA, 想去掉memset结果又莫名其妙的WA还找不到错误- -。。最近RP太差了
1 /* 2 ID:esxgx1 3 LANG:C++ 4 PROG:hdu1559 5 */ 6 #include <cstdio> 7 #include <cstring> 8 #include <iostream> 9 #include <algorithm>10 using namespace std;11 12 int m[1007][1007];13 long long sumx[1007], sumy[1007];14 long long sum[1007][1007];15 16 int main(void)17 {18 #ifndef ONLINE_JUDGE19 freopen("in.txt", "r", stdin);20 #endif21 22 int T;23 int M, N, X, Y;24 scanf("%d", &T);25 while(T) {26 scanf("%d%d%d%d", &M, &N, &X, &Y);27 memset(sumx, 0, sizeof(sumy));28 memset(sum, 0, sizeof(sum));29 for(int i=0; i<M; ++i) {30 sumy[i] = 0;31 for(int j=0; j<N; ++j) {32 scanf("%d", &m[i][j]);33 sumy[i] += m[i][j], sumx[j] += m[i][j];34 sum[i+1][j+1] += sum[i][j] + sumy[i] + sumx[j] - m[i][j];35 36 }37 }38 long long maxx = -0x3f3f3f3f3f3f3f3fLL;39 for(int i=X-1; i<M; ++i) {40 for(int j=Y-1; j<N; ++j) {41 #define i i+142 #define j j+143 if (maxx < sum[i][j] - sum[i-X][j] - sum[i][j-Y] + sum[i-X][j-Y])44 maxx = sum[i][j] - sum[i-X][j] - sum[i][j-Y] + sum[i-X][j-Y];45 #undef i46 #undef j47 }48 }49 printf("%I64d\n", maxx);50 --T;51 }52 return 0;53 }
2014-07-28 18:40:32 | Accepted | 1559 | 328MS | 12196K | 1081 B | G++ |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。