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. 网页设计中常用的Web安全字体

    但多数情况下,考虑各个因素的影响我们还是在尽量充分利用这些默认调用的字体实现CSS的编写,这里整理了19个Web安全字体,让你无需任何顾虑的情况下畅快使用. 1,  Arial 微软公司的网页核心字体 ...

  2. Java设计模式—生产者消费者模式(阻塞队列实现)

    生产者消费者模式是并发.多线程编程中经典的设计模式,生产者和消费者通过分离的执行工作解耦,简化了开发模式,生产者和消费者可以以不同的速度生产和消费数据.这篇文章我们来看看什么是生产者消费者模式,这个问 ...

  3. bootstrap-下拉菜单

    <!-- 1.给父级添加class为dropdown,或者给父级添加定位属性 2.给button添加data-toggle="dropdown"属性,并添加dropdown- ...

  4. DataTable中的数据赋值给model z

    create table memberinfo ( member_id int, member_name varchar(20), member_birthday varchar(50) ) go / ...

  5. vi命令的使用

    <转:http://linux.vbird.org/linux_basic/0310vi.php> 基本上 vi 共分为三种模式,分别是『一般模式』.『编辑模式』与『指令列命令模式』. 圖 ...

  6. 在UEFI下安装windows和Ubuntu双系统目前不可行

    UEFI是BIOS的升级,未来将取代BIOS,说白了,就是跟BISO差不多的作用.但是目前比较新的主板兼容两种设置就比较坑了,默认是UEFI,UEFI下只能安装win8以上的版本,和linux64位系 ...

  7. 页面设计--Tree目录树

    Tree目录树控件属性: 根据数据集合来配置相应的信息 加载模式有自动加载.自定加载 web中显示效果图:

  8. 阿里RDS备份恢复

    未使用root用户操作: 数据库版本要一致 数据目录:/data/mysqlbak/ 先按阿里给的步骤操作,最后出现一步出现,无法找到back_xxx.conf,但该文件已经存在.解决方法: sudo ...

  9. python3 AttributeError: 'NoneType' object has no attribute 'split'

    from wsgiref.simple_server import make_server def RunServer(environ, start_response): start_response ...

  10. 初探appium之元素定位(1)

    无论是selenium还是appium,元素定位都是我们开始实现自动化面临的第一个问题.selenium还好,我们可以在浏览器的调试页面进行元素定位还是蛮方便的.那么appium怎么做呢? 我看到很多 ...