码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 1505 City Game

时间:2014-07-22 22:45:13      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   

http://acm.hdu.edu.cn/showproblem.php?pid=1505

先处理每一行上每一个F为底往上所到达的高度,然后再左右处理。

bubuko.com,布布扣
 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 #define maxn 1001
 5 using namespace std;
 6 
 7 int t;
 8 int n,m;
 9 int a[maxn][maxn];
10 int l[maxn],r[maxn];
11 
12 int main()
13 {
14     scanf("%d",&t);
15     while(t--)
16     {
17         scanf("%d%d",&n,&m);
18         getchar();
19         memset(a,0,sizeof(a));
20         for(int i=1; i<=n; i++)
21         {
22             for(int j=1; j<=m; j++)
23             {
24                 char s[10];
25                 scanf("%s",s);
26                 if(s[0]==F) a[i][j]=a[i-1][j]+1;
27                 else a[i][j]=0;
28             }
29         }
30         int max1=-1;
31         for(int i=1; i<=n; i++)
32         {
33             a[i][0]=a[i][m+1]=-1;
34             for(int j=1; j<=m; j++)
35                 l[j]=r[j]=j;
36             for(int j=1; j<=m; j++)
37             {
38                 while(a[i][j]<=a[i][l[j]-1]) l[j]=l[l[j]-1];
39             }
40             for(int j=m; j>=1; j--)
41             {
42                 while(a[i][j]<=a[i][r[j]+1]) r[j]=r[r[j]+1];
43             }
44             for(int j=1; j<=m; j++)
45             {
46                 int ans=a[i][j]*(r[j]-l[j]+1);
47                 if(ans>max1)
48                     max1=ans;
49             }
50         }
51         printf("%d\n",max1*3);
52     }
53     return 0;
54 }
View Code

hdu 1505 City Game,布布扣,bubuko.com

hdu 1505 City Game

标签:style   blog   http   color   os   io   

原文地址:http://www.cnblogs.com/fanminghui/p/3859922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!