zoukankan      html  css  js  c++  java
  • 悬线法 || BZOJ3039: 玉蟾宫 || Luogu P4147 玉蟾宫

    题面: P4147 玉蟾宫

    题解:过于板子举报了

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #define min(a,b) ((a)<(b)?(a):(b))
     5 #define max(a,b) ((a)>(b)?(a):(b))
     6 using namespace std;
     7 const int maxn=1050,maxm=maxn;
     8 int N,M,L[maxn][maxm],R[maxn][maxm],H[maxn][maxm],ans=0;
     9 char c,C[maxn][maxm];
    10 int main(){
    11     scanf("%d%d",&N,&M);
    12     for(int i=1;i<=N;i++){
    13         for(int j=1;j<=M;j++){
    14             c=getchar();
    15             while(c!='R'&&c!='F')c=getchar();
    16             C[i][j]=c;
    17         }
    18     }
    19     for(int i=1;i<=N;i++){
    20         for(int j=1;j<=M;j++){
    21             if(C[i][j]=='F')H[i][j]=H[i-1][j]+1;
    22             else H[i][j]=0;
    23             if(C[i][j]=='F')L[i][j]=L[i][j-1]+1;
    24             else L[i][j]=0;
    25             int r=M-j+1;
    26             if(C[i][r]=='F')R[i][r]=R[i][r+1]+1;
    27             else R[i][r]=0;
    28         }
    29     }
    30     for(int i=1;i<=N;i++){
    31         for(int j=1;j<=M;j++){
    32             if(H[i][j]>1){
    33                 L[i][j]=min(L[i][j],L[i-1][j]);
    34                 R[i][j]=min(R[i][j],R[i-1][j]);
    35             }
    36             ans=max(ans,(L[i][j]+R[i][j]-1)*H[i][j]);
    37         }
    38     }
    39     ans*=3;
    40     printf("%d
    ",ans);
    41     return 0;
    42 }

    By:AlenaNuna

  • 相关阅读:
    Redis 安全
    Redis 数据备份与恢复
    Redis 服务器
    Redis 连接
    Redis 脚本
    Linux中使用netstat命令的基本操作,排查端口号的占用情况
    ElasticSearch 常用查询语句
    GO代码风格指南 Uber Go (转载)
    coding 注意事项(总结中)
    Byte字节
  • 原文地址:https://www.cnblogs.com/AlenaNuna/p/10513124.html
Copyright © 2011-2022 走看看