zoukankan      html  css  js  c++  java
  • 洛谷P4147 玉蟾宫

    继续悬线法,参考上一篇博客可以秒切

    代码:

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    #define maxn 1010
    using namespace std;
    int le[maxn][maxn],ri[maxn][maxn],up[maxn][maxn];
    char mp[maxn][maxn];
    int main()
    {
        int n,m;
        int ans=0;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                cin>>mp[i][j];
                le[i][j]=ri[i][j]=j;
                up[i][j]=1;
            }
        for(int i=1;i<=n;i++)
            for(int j=2;j<=m;j++)
                if(mp[i][j]=='F'&&mp[i][j-1]=='F')
                    le[i][j]=le[i][j-1];
        for(int i=1;i<=n;i++)
            for(int j=m-1;j>=1;j--)
                if(mp[i][j]=='F'&&mp[i][j+1]=='F')
                    ri[i][j]=ri[i][j+1];
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                if(i>1&&mp[i][j]=='F'&&mp[i-1][j]=='F')
                {
                    le[i][j]=max(le[i-1][j],le[i][j]);
                    ri[i][j]=min(ri[i-1][j],ri[i][j]);
                    up[i][j]=up[i-1][j]+1;
                }
                int a=ri[i][j]-le[i][j]+1;
                ans=max(ans,a*up[i][j]);
            }
        printf("%d",3*ans);
        return 0;
    }            
  • 相关阅读:
    获取split分割的最后一个值
    django分页查询
    django中iframe请求报错的问题
    pandas.Series
    NumPy 切片和索引
    继承
    NumPy 从数值范围创建数组
    迭代器iter用法
    numpy.asarray
    NumPy 创建数组
  • 原文地址:https://www.cnblogs.com/charlesss/p/10597452.html
Copyright © 2011-2022 走看看