91分,悬线法求助,求助各位大佬,谢谢!
  • 板块P4147 玉蟾宫
  • 楼主lcbridgeAK CSP-S
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/12/31 20:43
  • 上次更新2023/10/24 05:59:18
查看原帖
91分,悬线法求助,求助各位大佬,谢谢!
546681
lcbridgeAK CSP-S楼主2022/12/31 20:43

悬线法求助,91分,WA#4,求助各位大佬,谢谢!

#include <iostream>
#define MAXN 1005
using namespace std;
int n,m,h[MAXN][MAXN],l[MAXN][MAXN],r[MAXN][MAXN],ans;
bool f[MAXN][MAXN];          
char c;                      
int main(){    
	ios::sync_with_stdio(false);              
	cin>>n>>m;   
	for(int i=1;i<=n;i++){   
		for(int j=1;j<=m;j++){
			cin>>c;
			if(c=='F')f[i][j]=1;
			else f[i][j]=0;  
			h[i][j]=1;       
			l[i][j]=r[i][j]=j;
		}                    
	}                        
	for(int i=1;i<=n;i++){   
		for(int j=2;j<=m;j++){ 
			if(f[i][j]&&f[i][j-1])l[i][j]=l[i][j-1];	
		}
	}
	for(int i=1;i<=n;i++){   
		for(int j=m;j>=2;j--){ 
			if(f[i][j]&&f[i][j+1])r[i][j]=r[i][j+1];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(f[i][j]){
				if(f[i-1][j]){
					h[i][j]=h[i-1][j]+1;
					l[i][j]=max(l[i][j],l[i-1][j]);
					r[i][j]=min(r[i][j],r[i-1][j]);
					int tmp=(r[i][j]-l[i][j]+1)*h[i][j];
					ans=max(ans,tmp);
				}
			}
		}
	}
	printf("%d",ans*3);
	return 0;
}
2022/12/31 20:43
加载中...