题目描述
小美有一块N*N的正方形菜地,寒暑交替,冬去春来,现在到了可以种植草莓的季节了。遗憾的是,有些格子已经种上别的蔬菜了。小美希望在菜地中找到最大的一块正方形空地来种草莓,以满足她大吃草莓的愿望。
输入
第一行是一个整数T(1<=T<=100),表示测试数据的组数。
每一组测试数据的格式如下:
(1)第一行是一个正整数N(2<=N<=2000),表示正方形菜地的边长。
(2)随后有N行,每行有N个字符。字符只有两种可能,'E'表示空置,'F'表示已经种上蔬菜了。
输出
对于每组测试数据,输出一行,仅包含一个整数,即能找到的最大正方形空地的边长。
样例输入
2
2
EE
EE
3
FEE
EEE
EEE
样例输出
2
2
提示
小美有一块N*N的正方形菜地,寒暑交替,冬去春来,现在到了可以种植草莓的季节了。遗憾的是,有些格子已经种上别的蔬菜了。小美希望在菜地中找到最大的一块正方形空地来种草莓,以满足她大吃草莓的愿望。
输入
第一行是一个整数T(1<=T<=100),表示测试数据的组数。
每一组测试数据的格式如下:
(1)第一行是一个正整数N(2<=N<=2000),表示正方形菜地的边长。
(2)随后有N行,每行有N个字符。字符只有两种可能,'E'表示空置,'F'表示已经种上蔬菜了。
输出
对于每组测试数据,输出一行,仅包含一个整数,即能找到的最大正方形空地的边长。
样例输入
2
2
EE
EE
3
FEE
EEE
EEE
样例输出
2
2
提示
数据量大,不要使用C++的输入输出。
思路:DFS(耗时间较长),无法AC
#include<bits/stdc++.h>
using namespace std;
char G[2017][2017];
int maxn;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{