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 }
时间: 2024-10-13 12:34:55