社区讨论
求助
灌水区参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @ltkz3vop
- 此快照首次捕获于
- 2024/03/10 11:47 2 年前
- 此快照最后确认于
- 2024/03/10 14:41 2 年前
P4147 玉蟾宫
一行没输入完就炸了
CPP#include <bits/stdc++.h>
using namespace std;
int n,m,ans;
void find(int h[]){
int t[1010]={},s[1010]={},top,sop,l[1010]={},r[1010]={};
for(int i=1;i<=m;i++){
while(h[t[top]]>=h[i]&&top>=1)top--;
l[i]=t[top];
t[++top]=i;
}
for(int i=m;i>=1;i++){
while(h[s[sop]]>=h[i]&&sop>=1)sop--;
r[i]=m-s[sop]+1;
s[++sop]=i;
}
for(int i=1;i<=n;i++){
ans=max(ans,h[i]*(r[i]-l[i]-1));
}
return ;
}
char f[1010][1010];
int s[1010][1010];
int main(){
cin >> n >> m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin >> f[i][j];
if(f[i][j]=='F'){
s[i][j]=s[i-1][j]+1;
}
}
find(s[i]);
}
cout << 3*ans;
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...