做这题之前建议做一下hdu1506题,两道题是极度相似的题,不同的是这个要处理的是m行,所以可以用一个dp[][]数组存储矩形的高度,之后就变成hdu1506了。

例如测试样例:
0 1 1 1 1 1                                               0 1 1 1 1 1
1 1 1 1 1 1           (F=1,R=0,方便求和)       1 2 2 2 2 2
0 0 0 1 1 1           转化完就是右边矩阵           0 0 0 3 3 3
1 1 1 1 1 1                                               1 1 1 4 4 4
1 1 1 1 1 1                                               2 2 2 5 5 5
同样转移方程式:l[i]=l[l[i]-1],r[i]=r[r[i]-1];
#include"iostream"
#include"stdio.h"
#include"algorithm"
#include"string.h"
#include"cmath"
#include"queue"
#define mx 1010
using namespace std;
__int64 dp[mx][mx];
__int64 l[mx],r[mx],m,n,k,i,j,temp,ans;
char ch;
int main()
{
cin>>k;
while(k--)
{
cin>>m>>n;
getchar();
for(i=;i<=m;i++)
{
for(j=;j<=n;j++)
{
cin>>ch;
if(ch=='R') dp[i][j]=;
else dp[i][j]=;
getchar();
}
}
for(i=;i<=m;i++)
{
for(j=;j<=n;j++)
{
if(dp[i][j]!=) dp[i][j]=dp[i-][j]+;
}
}
ans=;
for(i=;i<=m;i++)
{
dp[i][]=dp[i][n+]=-;
for(j=;j<=n;j++)
{
l[j]=r[j]=j;
}
for(j=;j<=n;j++)
{
while(dp[i][l[j]-]>=dp[i][j]&&dp[i][j]!=)
l[j]=l[l[j]-];
}
for(j=n;j>=;j--)
{
while(dp[i][r[j]+]>=dp[i][j]&&dp[i][j]!=)
r[j]=r[r[j]+];
}
for(j=;j<=n;j++)
{
temp=dp[i][j]*(r[j]-l[j]+);
if(temp>ans) ans=temp;
}
}
cout<<ans*<<endl;
}
return ;
}

hdu City Game的更多相关文章

  1. HDU 1505 City Game (hdu1506 dp二维加强版)

    F - City Game Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submi ...

  2. HDU 3634 City Planning (离散化)

    City Planning Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...

  3. hdu 3624 City Planning(暴力,也可扫描线)

    City Planning Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  4. HDU 3080 The plan of city rebuild(prim和kruskal)

    The plan of city rebuild Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  5. Hdu 5352 MZL's City (多重匹配)

    题目链接: Hdu 5352 MZL's City 题目描述: 有n各节点,m个操作.刚开始的时候节点都是相互独立的,一共有三种操作: 1:把所有和x在一个连通块内的未重建过的点全部重建. 2:建立一 ...

  6. HDU 4849 Wow! Such City!陕西邀请赛C(最短路)

    HDU 4849 Wow! Such City! 题目链接 题意:依照题目中的公式构造出临接矩阵后.求出1到2 - n最短路%M的最小值 思路:就依据题目中方法构造矩阵,然后写一个dijkstra,利 ...

  7. 线段树 扫描线 L - Atlantis HDU - 1542 M - City Horizon POJ - 3277 N - Paint the Wall HDU - 1543

    学习博客推荐——线段树+扫描线(有关扫描线的理解) 我觉得要注意的几点 1 我的模板线段树的叶子节点存的都是 x[L]~x[L+1] 2 如果没有必要这个lazy 标志是可以不下传的 也就省了一个pu ...

  8. HDU 5013 City Tour

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5013 题意: 思路: 这里有错,是Hi(x)=sigama(Hji)(j属于x) const int ...

  9. HDU 4849-Wow! Such City!(最短路)

    Wow! Such City! Time Limit: 15000/8000 MS (Java/Others)    Memory Limit: 102400/102400 K (Java/Other ...

随机推荐

  1. Python yield 使用浅析(转)

    Python yield 使用浅析 初学 Python 的开发者经常会发现很多 Python 函数中用到了 yield 关键字,然而,带有 yield 的函数执行流程却和普通函数不一样,yield 到 ...

  2. Java for LeetCode 198 House Robber

    You are a professional robber planning to rob houses along a street. Each house has a certain amount ...

  3. codeforces 483A. Counterexample 解题报告

    题目链接:http://codeforces.com/problemset/problem/483/A 题目意思:给出一个区间 [l, r],要从中找出a, b, c,需要满足 a, b 互质,b, ...

  4. web iphone css 兼容性

    解决IPHONE网页兼容(部分字号变大): body{-webkit-text-size-adjust:none;}

  5. Floyd最短路算法

    Floyd最短路算法 ----转自啊哈磊[坐在马桶上看算法]算法6:只有五行的Floyd最短路算法 暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计 ...

  6. Spring源码下载地址

    今天想下载一下Spring的源代码,登录到Spring官网,傻眼了,根本找不到下载的地方!费了九牛二虎之力在网上找到了一个下载地址,记下来,免得下次再次傻找. http://s3.amazonaws. ...

  7. export 解决环境变量的问题!!!!

    export PATH="/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin" 如果/et ...

  8. telnet 测试端口是否打开

    [root@mysqld ~]# yum list |grep telnet telnet.x86_64 1:0.17-48.el6 @base telnet-server.x86_64 1:0.17 ...

  9. Java中如何使封装自己的类,建立并使用自己的类库?

    转自:http://blog.csdn.net/luoweifu/article/details/7281494 随着自己的编程经历的积累会发现往往自己在一些项目中写的类在别的项目中也会有多次用到.你 ...

  10. Android 电池电量进度条,上下滚动图片的进度条(battery)

    最近,制作一个app,需要模拟一个电池电量的进度条,根据电量多少来设置百分比,进度条不断上下滚动,就像平时手机充电一样的电池电量进度条.我就自定义view实现了电量进度条.修改图片就可以达到自己想要的 ...