the main algorithm as the 1506

#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
char gird[][];
int num[][];
int m,n;
int find(int a){
int i,j,res,max;
int t;
int l[],r[];
l[]=; r[m]=m;
for(i=;i<=m;++i){
t=i;
if(num[a][i]==){
l[i]=i;
continue;
}
while(t>&&num[a][i]<=num[a][t-])
t=l[t-];
l[i]=t;
}
for(i=m-;i>=;--i){
t=i;
if(num[a][i]==){
r[i]=i;
continue;
}
while(t<m&&num[a][i]<=num[a][t+])
t=r[t+];
r[i]=t;
}
res=;
for(i=;i<=m;++i){
if( (r[i]-l[i]+)**num[a][i] > res )
res = (r[i]-l[i]+)**num[a][i];
} /*
for(i=1;i<=m;++i)
cout<<num[a][i]<<" ";
cout<<endl;
cout<<"left-----"<<endl;
for(i=1;i<=m;++i)
cout<<l[i]<<" ";
cout<<endl;
cout<<"right---"<<endl;
for(i=1;i<=m;++i)
cout<<r[i]<<" ";
cout<<endl;
cout<<res<<endl; */ return res;
}
int init(){
cin>>n>>m;
int i,j,tmp;
for(i=;i<=n;++i)
for(j=;j<=m;++j)
cin>>gird[i][j];
for(j=;j<=m;++j)
if(gird[][j]=='F') num[][j]=;
else num[][j]=;
for(i=;i<=n;++i)
for(j=;j<=m;++j){
if(gird[i][j]=='F') num[i][j]=num[i-][j]+;
else num[i][j]=;
}
int res=;
for(i=;i<=n;++i){
tmp=find(i);
if(tmp>res) res=tmp;
}
return res;
}
int main(){
int t,i,j;
while(cin>>t){
while(t--){
cout<<init()<<endl;
}
}
return ;
}

hdu1505的更多相关文章

  1. hdu1505 dp

    //Accepted 5196 KB 109 ms //类似hdu1506 //输入数据的格式没有明确的限制 //可能出现以下情况 //5 5 //R //F //F F F //F F F F F ...

  2. hdu1505(dp求最大子矩阵)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1505 分析: 这题是HDU 1506 的加强版,定义一个二维数组,d[i][j]表示第i行j列元素在前 ...

  3. HDU1505 City Game(算竞进阶习题)

    写了1506顺便写下1505.. 还是求矩形面积,不过要预处理一下以每一个F为底的高度,然后想左右扩展到最大长度即为矩形的长.. 计算方法有点绕,令l[i]表示i的左边界,那么初始化l[i] = i. ...

  4. HDU1505 City Game 悬线法

    题意: 给出一个像这样的矩阵 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 求F组成的最大子矩阵(面积最大) 有多组数 ...

  5. HDU1505(HDU1506的加强版)

    昨天打 CF又跪了.近期睡不好睡不好睡不好-感觉整个人都累傻了,根本无办法写下去,只写了一题签到题就跪了orz..从未试过这么悲剧. 今天早上凭着我的意念("怨念").七点又起来了 ...

  6. hdu1505 暴力或dp优化

    题意:        给你一个矩阵,让你在里面找到一个最大的f矩阵.. 思路:       三种方法ac这到题目;  方法(1) 以宽为主,暴力    开一个数组sum[i][j],记录当前这个位置的 ...

  7. 转载:hdu 动态规划题集

    1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955     背包;第一次做的时候把概率当做背包(放大100000倍化为整数): ...

  8. DP总结 ——QPH

    常见优化 单调队列 形式 dp[i]=min{f(k)} dp[i]=max{f(k)} 要求 f(k)是关于k的函数 k的范围和i有关 转移方法 维护一个单调递增(减)的队列,可以在两头弹出元素,一 ...

  9. City Game

    hdu1505:http://acm.hdu.edu.cn/showproblem.php?pid=1505 题解:给你一个字符矩阵,里面有R和F两种字符,然后让你找一个最大的子矩阵,这个最大的子矩阵 ...

随机推荐

  1. Uvision5不能进行软件仿真

    Uvision5不能进行软件仿真不能进行软件仿真,报错: error 65: access violation at 0x40021000 : no 'read' permission(软件仿真出错) ...

  2. JAVA toString方法

    在JAVA中,所有的对象都有toString方法: 创建类时没有定义toString方法,输出对象时,会输出对象的哈希值: 它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个 ...

  3. Java注解实践--annotation学习三

    注解对代码的语意没有直接影响, 他们只负责提供信息给相关的程序使用. 注解永远不会改变被注解代码的含义, 但可以通过工具对被注解的代码进行特殊处理. JDK 基本Annotation 注解 说明 @O ...

  4. 4个理由告诉你Java为何排行第一

    Java已经有20年的历史了,甚至更久,而这取决于你所询问的人和你的计算方式.忽略它的年龄不看,Java依然排行第一.它的实用性.性能和向后兼容性都彰显其价值所在.2016年伊始,标志着我们已经走过了 ...

  5. [ActionScript 3.0] AS3动态改变注册点

    package { import flash.display.DisplayObject; import flash.display.DisplayObjectContainer; import fl ...

  6. 问答精华-IntelliJ IDEA快捷键大全

    这篇文章介绍了idea的默认快捷键http://www.jikexueyuan.com/blog/229.html 另外:老师将快捷键设置为eclipse的了,你需要在preference里面找到ke ...

  7. CRM报表打印

    删除路径下的文件 C:\Windows\Downloaded Program Files\rsclientprint.dll路径下的这个dll文件,重新登录crm选择一个面单点击打印按钮重新安装插件

  8. java生产随机字符串

    public static String getRandomString(int length) { //length表示生成字符串的长度 String base = "abcdefghij ...

  9. Maven项目中,编译proto文件成Java类

    新建Maven项目 新建一个 Maven 项目: pom定义了最小的maven2元素,即:groupId,artifactId,version. groupId:项目或者组织的唯一标志,并且配置时生成 ...

  10. django 模板if判断的时候==两边需要有空格

    比如 {%if a=='y'%}错误,{%if a =='y'%}也是错误的 只能是{%if a == 'y'%}这样才行