zoukankan      html  css  js  c++  java
  • HDU1505(HDU1506的加强版)

    昨天打 CF又跪了,近期睡不好睡不好睡不好~感觉整个人都累傻了。根本无办法写下去,只写了一题签到题就跪了orz..从未试过这么悲剧。

    今天早上凭着我的意念(“怨念”),七点又起来了!我已经连续好多天七点自己主动起来(不是自然醒。是意念。是意念....)。刷啊刷啊刷dp.

    今天刷的是昨天的加强版,实际上就多了一个for循环。和做高度处理,不直到是不是正解(  ╮(╯▽╰)╭ ),可是AC就好了...

    经过多次调试我的shell脚本,这个acm.sh算是比較稳定了,还差一个自己主动提交机啊!

    我的肉不够多啊。人肉提交非常累。

    看到我的開始时间是07:41:44,由于我改了一下我的脚本。大概就是自己主动在hdu或者poj扒下測试数据。生成了文件in.txt,out.txt,以及自己主动生成带有ifndef什么的。

    改.vimrc改到有小小感觉了,等我的机器人自己主动提交,我就能够共享到github,再写一篇关于我的acm.sh~不知道大家刷ACM的时候是不是特别蛋疼做非常多无谓的工作~(比方每次拍数据。)。我把我能想到能够机器人弄的都弄上去, O(∩_∩)O哈哈~

    好吧,讲回题目,题目意思就是在一个方阵上找到最大的子矩阵。即所有标记为F的最大子矩阵。之后输出子矩阵F的个数*3.

    思路就是,对每行构造高度矩阵(我是自顶向下的。比方 (R F F ;R F R)。这样做到的矩阵为(0,2,1;0,1,0),有了高度。对每行做昨天的1506,then output!

    /***********************************************************
    	> OS     : Linux 3.2.0-60-generic #91-Ubuntu
    	> Author : yaolong
    	> Mail   : dengyaolong@yeah.net 
    	> Time   : 2014年06月02日 星期一 07:41:44
     **********************************************************/
    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    using namespace std;
    int h[1005][1005];
    char mp[1005][1005];
    int lt[1005],rt[1005];
    int main(){
    #ifndef ONLINE_JUDGE
    freopen("in.txt","r",stdin);
    #endif
    
        int T,n,m;
        scanf(" %d",&T);
        while(T--){
            scanf("%d%d",&n,&m);
            for(int i=1;i<=n;i++)
            {
                for(int j=1;j<=m;j++){
                    scanf(" %c",&mp[i][j]);
                }
            }
            for(int j=1;j<=m;j++){
                h[0][j]=0;
            }
            for(int i=1;i<=n;i++){
                for(int j=1;j<=m;j++){
                    if(mp[i][j]=='R'){
                        h[i][j]=0;
                    }else{
                        h[i][j]=h[i-1][j]+1;
                    }
                }
            }
            /*
            for(int i=1;i<=n;i++){
              for(int j=1;j<=m;j++){
                printf("%d",h[i][j]);
              }
                puts("");
            }*/
            int mmax=0,t;
            for(int i=1;i<=n;i++){
                lt[1]=1;rt[m]=m;
                for(int j=2;j<=m;j++){
                    t=j;
                    while(t>1&&h[i][j]<=h[i][t-1]) t=lt[t-1];
                    lt[j]=t;
                }
                for(int j=m-1;j>=1;j--){
                    t=j;
                    while(t<m&&h[i][j]<=h[i][t+1]) t=rt[t+1];
                    rt[j]=t;
                }
                for(int j=1;j<=m;j++){
                    mmax=max(mmax,h[i][j]*(rt[j]-lt[j]+1));
                }
            }
            printf("%d
    ",mmax*3);
             
        }
        
    #ifndef ONLINE_JUDGE
    fclose(stdin);
    #endif
    return 0;
    }
    


  • 相关阅读:
    【codecombat】 试玩全攻略 第二章 边远地区的森林 一步错
    【codecombat】 试玩全攻略 第十八关 最后的kithman族
    【codecombat】 试玩全攻略 第二章 边远地区的森林 woodlang cubbies
    【codecombat】 试玩全攻略 第二章 边远地区的森林 羊肠小道
    【codecombat】 试玩全攻略 第十七关 混乱的梦境
    【codecombat】 试玩全攻略 第二章 边远地区的森林 林中的死亡回避
    【codecombat】 试玩全攻略 特别关:kithguard斗殴
    【codecombat】 试玩全攻略 第二章 边远地区的森林 森林保卫战
    【codecombat】 试玩全攻略 第二章 边远地区的森林
    实验3 类和对象||
  • 原文地址:https://www.cnblogs.com/llguanli/p/7280069.html
Copyright © 2011-2022 走看看