zoukankan      html  css  js  c++  java
  • BZOJ 3039: 玉蟾宫【dp】

    Description

    有一天,小猫rainbow和freda来到了湘西张家界的天门山玉蟾宫,玉蟾宫宫主蓝兔盛情地款待了它们,并赐予它们一片土地。
    这片土地被分成N*M个格子,每个格子里写着'R'或者'F',R代表这块土地被赐予了rainbow,F代表这块土地被赐予了freda。
    现在freda要在这里卖萌。。。它要找一块矩形土地,要求这片土地都标着'F'并且面积最大。
    但是rainbow和freda的OI水平都弱爆了,找不出这块土地,而蓝兔也想看freda卖萌(她显然是不会编程的……),所以它们决定,如果你找到的土地面积为S,它们每人给你S两银子。

    Input

    第一行两个整数N,M,表示矩形土地有N行M列。
    接下来N行,每行M个用空格隔开的字符'F'或'R',描述了矩形土地。

    Output

    输出一个整数,表示你能得到多少银子,即(3*最大'F'矩形土地面积)的值。

    Sample Input

    5 6
    R F F F F F
    F F F F F F
    R R R F F F
    F F F F F F
    F F F F F F

    Sample Output

    45

    HINT



    对于50%的数据,1<=N,M<=200

    对于100%的数据,1<=N,M<=1000

    思路:最大子矩阵,貌似这是第三次敲了TUT 数据水到没用滚动数组也能A

    //bzoj3039

    #include <stdio.h>

    #include <string.h>

    #include <algorithm>

    #include <iostream>

    #include <queue>

    #define maxn 2000

    #define com 100005

    using namespace std;

    char ch[10];

    bool map[maxn][maxn];

    int up[maxn][maxn],lef[maxn][maxn],righ[maxn][maxn];

    int main()

    {

        int n,m,ans=0;

        scanf("%d%d",&n,&m);

        for(int i=1;i<=n;i++)

        {

            for(int j=1;j<=m;j++)

            {

                scanf("%s",ch);

                if(ch[0]=='F')map[i][j]=1;else {map[i][j]=0;righ[i][j]=m+1;}

            }

        }

        for(int i=1;i<=m;i++)righ[0][i]=m;

        for(int i=1;i<=n;i++)

        {

            int la=0;

            for(int j=1;j<=m;j++)if(map[i][j]==1)

            {

                up[i][j]=up[i-1][j]+1;

                lef[i][j]=max(la+1,lef[i-1][j]);

            }

            else la=j;

            la=m+1;

            for(int j=m;j>=1;j--)

            {

                if(map[i][j]==1)

                    righ[i][j]=min(la-1,righ[i-1][j]);

                else la=j;

                ans=max(ans,(righ[i][j]-lef[i][j]+1)*up[i][j]);

            }

        }

        printf("%d ",ans*3);

        return 0;

    }

  • 相关阅读:
    互联网 DBA 需要做那些事(转)
    mysql_connect和mysql_pconnect区别(转)
    Redis应用案例,查找某个值的范围(转)
    PHP 正则表达式常用函数使用小结
    PHP转换UTF-8和GB2312的URL编码(转)
    PHP 打印调用函数入口地址(堆栈)
    php CI框架nginx 配置
    apache部署多个项目
    Apache+php在windows下的安装和配置
    appium测试之获取appPackage和appActivity
  • 原文地址:https://www.cnblogs.com/philippica/p/4097892.html
Copyright © 2011-2022 走看看