求加强数据,O(nm*nm)AC
查看原帖
求加强数据,O(nm*nm)AC
1271969
Nahida_Buer楼主2024/8/29 19:49
#include<bits/stdc++.h> 
#define ll long long
using namespace std;
int read(){
	int x=0,f=1;char c=getchar();
	while(c>'9' or c<'0' ){if(c=='-')f=-1;c=getchar();}
	while(c>='0' and c<='9'){x=x*10+c-'0';c=getchar();}
	return x*f;
}
int n,m,ans;
bool mp[250][250];
int h[250][250],l[250][250];
int main(){
	n=read();
	m=read();
	for(int i=1;i<=n;i++){
		char a[250];
		scanf("%s",a+1);
		for(int j=1;j<=m;j++){
			if(a[j]=='.')mp[i][j]=0;
			else mp[i][j]=1;
			h[i][j]=h[i][j-1]+mp[i][j];
			l[i][j]=l[i-1][j]+mp[i][j];
		}
	} 

	for(int x=1;x<=n;x++){
		for(int y=1;y<=m;y++){
			if(mp[x][y])continue;
			for(int i=x;i<=n;i++){
				for(int j=y;j<=m;j++){
					if(mp[i][j])continue;
					if(l[x][y]==l[i][y]&&l[x][j]==l[i][j]&&h[x][y]==h[x][j]&&h[i][y]==h[i][j])ans=max(ans,(i-x+1)*(j-y+1));
				}
			}
		}
	}
	cout<<ans;
} 
2024/8/29 19:49
加载中...