http://acm.hdu.edu.cn/showproblem.php?pid=1505

先处理每一行上每一个F为底往上所到达的高度,然后再左右处理。

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 #define maxn 1001
 5 using namespace std;
 6
 7 int t;
 8 int n,m;
 9 int a[maxn][maxn];
10 int l[maxn],r[maxn];
11
12 int main()
13 {
14     scanf("%d",&t);
15     while(t--)
16     {
17         scanf("%d%d",&n,&m);
18         getchar();
19         memset(a,0,sizeof(a));
20         for(int i=1; i<=n; i++)
21         {
22             for(int j=1; j<=m; j++)
23             {
24                 char s[10];
25                 scanf("%s",s);
26                 if(s[0]=='F') a[i][j]=a[i-1][j]+1;
27                 else a[i][j]=0;
28             }
29         }
30         int max1=-1;
31         for(int i=1; i<=n; i++)
32         {
33             a[i][0]=a[i][m+1]=-1;
34             for(int j=1; j<=m; j++)
35                 l[j]=r[j]=j;
36             for(int j=1; j<=m; j++)
37             {
38                 while(a[i][j]<=a[i][l[j]-1]) l[j]=l[l[j]-1];
39             }
40             for(int j=m; j>=1; j--)
41             {
42                 while(a[i][j]<=a[i][r[j]+1]) r[j]=r[r[j]+1];
43             }
44             for(int j=1; j<=m; j++)
45             {
46                 int ans=a[i][j]*(r[j]-l[j]+1);
47                 if(ans>max1)
48                     max1=ans;
49             }
50         }
51         printf("%d\n",max1*3);
52     }
53     return 0;
54 }

View Code

转载于:https://www.cnblogs.com/fanminghui/p/3859922.html

hdu 1505 City Game相关推荐

  1. 最大全1子矩阵的两种解法(例题:City Game HDU - 1505)

    以前牛客多校遇到过两道,都没做出来,这次来系统性的补习一下. 例题:City Game HDU - 1505 题意:给你一个矩阵,求最大全1子矩阵,最后结果乘以3... 全1矩阵可以参考下图 这个框就 ...

  2. hdu 1505(矩阵dp)

    解题思路:这道题是1506的加强版,在处理过程中,把所有的F变成1,R变成0,定义dp[i][j]表示第i行,第j列的数上面有多少个连续的1,这样就可以成功地和1506扯上关系了. 对于第i行中,1- ...

  3. hdu 5148 City (树形dp)

    题意: 在树中取k个点,这些点中任意点的距离和要最小. 题解: dp[i][j],表示以i为跟的子树选择j个节点对应的距离对整体的贡献,就是一个树形背包. dp[u][j] = min { dp[u] ...

  4. 杭电OJ分类题目(3)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(3) HDU Computational Ge ...

  5. 入门经典_Chap08_题解总结:极角扫描法 滑动窗口 单调队列 单调栈

    总结  本章主要关注一个重要的问题 – 单调队列和单调栈的使用  同时还有一些其他的问题,如扫描法,递归的思想, 构造, 分治, 二分等 知识点 单调队列 和 单调栈 题目 UVA - 1606 Am ...

  6. python 正则表达式提取数据_Python爬虫教程-19-数据提取-正则表达式(re)

    本篇主页内容:match的基本使用,search的基本使用,findall,finditer的基本使用,匹配中文,贪婪与非贪婪模式 Python爬虫教程-19-数据提取-正则表达式(re) 正则表达式 ...

  7. 有趣的动态规划题目(一)

    文章目录 [HDOJ 2084.数塔] [HDOJ 1176.免费馅饼] [HDOJ 1864.最大报销额] [HDOJ 1003.Max Sum] [HDOJ 1506.Largest Rectan ...

  8. HDU OJ 动态规划46题解析

    Robberies http://acm.hdu.edu.cn/showproblem.php?pid=2955  背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢 ...

  9. HDU中一些DP的题目分类

    DP是难点,供自已以后系统学习. 1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.php?pid=2955      背包;第一次做的时候把概率当做 ...

最新文章

  1. ucos操作系统的内核有哪些调度方法
  2. python变量作用域 for_python变量作用域
  3. log4jdbc oracle,通过weblogic配置log4jdbc数据源,在项目中使用该数据源,输出sql
  4. RE:大家说说开发的时候类名和文件名一般是怎么规范的?
  5. 《数据库原理与应用》(第三版) 第 6 章 数据操作语句 基础 习题参考答案
  6. git 实践(二) push的使用
  7. python 蓝牙开发_基于python实现蓝牙通信代码实例
  8. 床长人工智能教程 - 前言
  9. 网络工程师考试知识点总结
  10. JAVA管理信息系统答辩ppt,个人信息管理系统答辩ppt
  11. java 圣思园视频资源
  12. matlab数字图像处理实验报告
  13. windows通过vnc远程桌面
  14. 怎样保持下拉菜单截图?如何快速截图截图快捷键
  15. 电脑照片太大怎么压缩?照片怎么缩小kb?
  16. 【CODE】Longest Substring Without Repeating Characters
  17. 电脑连接网线之后怎么给手机开热点
  18. Windows微信刷朋友圈
  19. Android 蓝牙开发——蓝牙连接(六)
  20. SonarQube安装以及结合idea使用详细步骤

热门文章

  1. java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询
  2. Linux下安装配置JDK
  3. python计算机视觉2:图像边缘检测
  4. Activit系列之---Activity的生命周期
  5. 不同技术团队的配合问题及DevOps
  6. fedora 忘记root密码
  7. Tomcat配置和Web应用程序开发
  8. Flsak爱家租房--实名认证
  9. python中itsdangerous模块
  10. python自动取款机程序_python ATM取款机----运维开发初学(上篇)