标签:
1 /*
2 题意:求最大矩形(全0)的面积
3 暴力/dp:每对一个0查看它左下的最大矩形面积,更新ans
4 注意:是字符串,没用空格,好事多磨,WA了多少次才发现:(
5 详细解释:http://www.cnblogs.com/cszlg/p/3217478.html
6 */
7 #include <cstdio>
8 #include <algorithm>
9 #include <cstring>
10 #include <cmath>
11 using namespace std;
12
13 const int MAXN = 33;
14 const int INF = 0x3f3f3f3f;
15 char s[MAXN][MAXN];
16 int n, m;
17
18 int get_sum(int x, int y)
19 {
20 int res = 0; int d, w = 30;
21 for (int i=x; i<n; ++i)
22 {
23 if (s[i][y] == ‘1‘) break;
24 int j = y + 1;
25 while (j < m && s[i][j] == ‘0‘) ++j;
26 d = i - x + 1;
27 if (w > j - y) w = j - y;
28 res = max (res, (w + d) * 2);
29 }
30
31 return res;
32 }
33
34 int main(void) //Codeforces Beta Round #22 (Div. 2 Only) B. Bargaining Table
35 {
36 while (scanf ("%d%d", &n, &m) == 2)
37 {
38 for (int i=0; i<n; ++i)
39 {
40 scanf ("%s", s[i]);
41 }
42
43 int ans = 0;
44 for (int i=0; i<n; ++i)
45 {
46 for (int j=0; j<m; ++j)
47 {
48 if (s[i][j] == ‘0‘)
49 {
50 ans = max (ans, get_sum (i, j));
51 }
52 }
53 }
54
55 printf ("%d\n", ans);
56 }
57
58 return 0;
59 }
暴力/DP Codeforces Beta Round #22 (Div. 2 Only) B. Bargaining Table
标签:
原文地址:http://www.cnblogs.com/Running-Time/p/4547670.html