正文

Zju 2180 City Game2006-07-28 22:15:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/cruxd/16935.html

分享到:

事实上和1985一摸一样。

#include <cstdio>
#include <string>

/* state: 0.34s, 404kb  */

int n, a, b;
int m[1000], r[1000], l[1000];

void pm()
{
 for(int i = 0; i < b; i ++)
 {
  printf("%d ", m[i]);
 }
 printf("\n");
}

int main()
{
 //freopen("in.txt", "r", stdin);
 int i, k, j;
 scanf("%d", &n);
 for(i = 0; i < n; i ++)
 {
  memset(m, 0, sizeof(m));
  scanf("%d %d ", &a, &b);
  //pm();
  int max = 0;
  //dp(n^2......)
  for(k = 0; k < a; k ++)
  {
   for(j = 0; j < b; j ++)
   {
    char tc; scanf("%c ", &tc);
    if(tc == 'R')
     m[j] = 0;
    else
     m[j] ++;
   }
   //pm();
   for(j = 0; j < b; j ++)
   {
    l[j] = j;
    while(l[j] > 0 && m[j] <= m[l[j] - 1])
     l[j] = l[l[j] - 1];
   }

   for(j = b - 1; j >= 0; j --)
   {
    r[j] = j;
    while(r[j] < b - 1 && m[j] <= m[r[j] + 1])
     r[j] = r[r[j] + 1];
    if(max < (r[j] - l[j] + 1) * m[j])
     max = (r[j] - l[j] + 1) * m[j];
   }
  }
  printf("%d\n", max * 3);
 }
 return 0;
}

 

阅读(4360) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册