BZOJ 3039: 옥섬궁 | 현선dp
2972 단어 현선법
#include<set>
#include<map>
#include<ctime>
#include<queue>
#include<cmath>
#include<cstdio>
#include<vector>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define T 1111
using namespace std;
int h[T],l[T],r[T];
int n,m,ans;
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
char c=getchar();
while(c!='R'&&c!='F')c=getchar();
if(c=='F')h[j]++; else h[j]=0;
l[j]=r[j]=j;
}
for(int j=1;j<=m;j++)if(h[j])
while(h[j]<=h[l[j]-1])l[j]=l[l[j]-1];
for(int j=m;j>=1;j--)if(h[j])
{
while(h[j]<=h[r[j]+1])r[j]=r[r[j]+1];
ans=max(ans,h[j]*(r[j]-l[j]+1));
}
}
cout<<ans*3;
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
BZOJ 3039: 옥섬궁 | 현선dp먼저 점 하나하나가 위로 가장 많이 뻗은 길이를 구하고 그 다음에 좌우로 뻗는다. 이게 어떻게 선형적이냐에 따라 정해가 단조로운 것 같다. 자세를 바꾸면 비슷한 것을 쓸 수 있다. 코드를 직접 보자. 코드는 매우 간...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.