//============================================================================
// Name : 1964.cpp
// Author :
// Version :
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <stack>
using namespace std;
typedef struct element {
int index;
int count;
} Element;
Element first;
int main() {
ios::sync_with_stdio(false);
first.count = -1;
first.index = -1;
int t;
cin >> t;
for (int i = 0; i < t; i++) {
int m, n;
cin >> m >> n;
int data[m][n];
char ch;
int max = 0;
for (int j = 0; j < m; j++) {
stack<Element> sk;
sk.push(first);
for (int k = 0; k < n; k++) {
cin >> ch;
if (ch == 'R') {
data[j][k] = 0;
} else {
if (j == 0)
data[j][k] = 1;
else
data[j][k] = data[j - 1][k] + 1;
}
Element e = sk.top();
while (e.count > data[j][k]) {
int nsize = e.count * (k - e.index);
if (max < nsize)
max = nsize;
sk.pop();
e = sk.top();
}
if (data[j][k] > 0) {
Element ne;
ne.index = k;
ne.count = data[j][k];
sk.push(ne);
}
}
Element e = sk.top();
while (e.count > -1) {
int nsize = e.count * (n - e.index);
if (max < nsize)
max = nsize;
sk.pop();
e = sk.top();
}
}
cout << max * 3 << endl;
}
return 0;
}
poj1964
最新推荐文章于 2020-03-05 22:38:56 发布