32分求调
  • 板块P4147 玉蟾宫
  • 楼主huge_wave
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/3 20:08
  • 上次更新2024/7/3 21:50:10
查看原帖
32分求调
1269423
huge_wave楼主2024/7/3 20:08
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+10;
#define int long long
char a[N][N];
int h[N][N],l[N][N],r[N][N];
main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n,m,maxx=0;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			h[i][j]=1;
			l[i][j]=j;
			if(a[i][j-1]=='F'){
				l[i][j]=l[i][j-1];
			}
			r[i][j]=j;
			if(a[i][j+1]=='F'){
				r[i][j]=r[i][j+1];
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(a[i-1][j]=='F'){
				h[i][j]=h[i-1][j]+1;
			}
			if(a[i][j]=='F'&&a[i-1][j]=='F'&&l[i-1][j]>l[i][j]){
				l[i][j]=l[i-1][j];
			}
			if(a[i][j]=='F'&&a[i-1][j]=='F'&&r[i-1][j]<r[i][j]){
				r[i][j]=r[i-1][j];
			}
			maxx=max(maxx,h[i][j]*(r[i][j]-l[i][j]+1));
		}
	}
	cout<<maxx*3;
	return 0;
}
2024/7/3 20:08
加载中...