//如果一个矩形最大,那么该矩形其中的一列必定可以向左向右扫描最大,时空复杂度O(n*m)
#include<cstdio>
#include<iostream>
using namespace std;
const int mx=1002;
int a[mx][mx],l[mx][mx],up[mx][mx],r[mx][mx],n,m;
int main()
{int T;scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);for(int i=1; i<=n; ++i)for(int j=1; j<=m; ++j){char ch=getchar();while(ch!='F'&&ch!='R') ch=getchar();a[i][j]=ch=='F'?0:1;}int ans=0;for(int i=1;i<=m;++i)r[0][i]=m+1;for(int i=1; i<=n; ++i) //逐行遍历{int lo=0,ro=m+1;//lo记录的是该行向左最近的障碍的位置,ro向右的障碍位置for(int j=1; j<=m; ++j)if(a[i][j]) l[i][j]=up[i][j]=0,lo=j;else up[i][j]=up[i-1][j]+1,l[i][j]=max(l[i-1][j],lo);for(int j=m; j>0; --j)if(a[i][j]) r[i][j]=m+1,ro=j;else r[i][j]=min(r[i-1][j],ro),ans=max(up[i][j]*(r[i][j]-l[i][j]-1),ans);}printf("%d\n",ans*3);}return 0;
}

最大子矩阵(悬挂线)相关推荐

  1. 求一个矩阵的最大子矩阵

    #include <iostream> #include <string> #include <assert.h> #include <malloc.h> ...

  2. 最大子矩阵(降维处理)

    题目描述 已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵. 比如,如下4 * 4的矩阵 0 -2 -7 0 9 2 -6 2 -4 1 - ...

  3. 带限制条件的最大子矩阵 - 牛客

    链接:https://www.nowcoder.com/acm/contest/131/B 来源:牛客网 题目描述 矩阵 M 包含 R 行 C 列,第 i 行第 j 列的值为 Mi,j. 请寻找一个子 ...

  4. 软件工程——求二维数组所有子矩阵的和的最大值

    题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 求所有子数组的和的最大值.要求时间复杂度为 ...

  5. 子矩阵(暴搜(全排列)+DP)

    子矩阵(暴搜(全排列)+DP) 一.题目 子矩阵 时间限制: 1 Sec  内存限制: 128 MB 提交: 1  解决: 1 [提交][状态][讨论版] 题目描述 给出如下定义: 1. 子矩阵:从一 ...

  6. 【降维解法:最大字段和-最大子矩阵和-最终版最大子长方体和】【UVA10755】Garbage Heap...

    突然感觉刷完这一套专题后 码力有了质的飞跃,fighting 努力会有结果! 最大字段和是一个很经典的问题 O(n)算法 而对于最大子矩阵和 可以思考一个这样的想法 枚举上下边界i,j把i到j这一段的 ...

  7. LeetCode Maximal Square(最大子矩阵)

    问题:给出一个由0,1组成的二维数组,求由1组成的最大子矩阵 思路:第一种方式使用暴力法,在遍历二维数组时,如果当前元素是1,则以当前位置为起点,判断先增的一行,一列是否全是1,如果是,则将当前边长度 ...

  8. 利用动态规划求连续数组最大和以及最大子矩阵的和

    题目一: 给定一个整型数组,数组中有正有负,求最大连续子序列的和. 解法: 利用动态规划的思想. 设f(n)表示以a[n]为子序列最后一个元素的最大和,则可以有下面的规则: (1)当f(n-1)< ...

  9. hdu2830 可交换行的最大子矩阵

    题意:       求最大子矩阵,但是相邻的列之间可以相互交换... 思路:       回想下固定的情况,记得那种情况是开俩个数组 L[i] ,R[i],记录小于等于i的最左边和最右边在哪个位置,对 ...

最新文章

  1. 万字总结,体系化带你全面认识 Nginx
  2. 让Windows控制台应用程序支持VT100---原理篇
  3. 每一个正整数可以表示为3个三角形数之和
  4. 多级嵌套json格式
  5. 仿WINDWS无限级Ajax菜单树升级1.3版(修补了严重BUG)
  6. c语言单向链表经典,C语言基础 - 实现单向链表
  7. NYOJ11 - 奇偶数分离
  8. DNS和DHCP之间有哪些区别
  9. C99的新关键字_Bool
  10. 老掉牙的ArrayList解析它它它又来了
  11. 小甲鱼python自学笔记
  12. 「2020目标一」项目管理PMP
  13. 经典卷积神经网络---VGG16详解
  14. win7虚拟磁盘服务器,深度Win7 64位旗舰版系统如何创建虚拟磁盘
  15. 1232_使用SCons实现WindRiver Diab编译器的命令行自动化编译环境
  16. linux用ping命令测试网速,怎么用ping命令测试网速
  17. DEVC++安装后编程运行时老是提示“源文件未编译”
  18. js中.getMonth() 获取月份比实际月份少一个月
  19. 优化工具MOZ功能详细解说
  20. H5微信授权登录后点击返回出现循环登录无法退出问题

热门文章

  1. 获取thinkph5下控制器和方法名
  2. Github项目分享——免费的编程中文书籍索引
  3. HTML案例--西式甜品网
  4. 字符串复制函数strncpy()和内存拷贝函数memcpy()
  5. ROBOGUIDE软件:机器人输送带上下料虚拟仿真操作方法
  6. AD/DA转换(XPT2046)
  7. 产品笔试刷题错题记录
  8. c# CAD二次开发 模拟CAD移动图形, 通过圆现在注记,改变图形颜色
  9. 计算机唤醒休眠蓝屏,win7唤醒睡眠时经常蓝屏
  10. 人工智能引发了科学研究的革命