HDU 1505 Largest Rectangle in a Histogram && HDU 1506 City Game(动态规划)
1506意甲冠军:给你一个连续的直方图(拼贴底部长度1)。求连续基质区。

对每一个直方图,分别向左向右进行扩展。
#include<cstdio>
#include<stdlib.h>
#include<string.h>
#include<string>
#include<map>
#include<cmath>
#include<iostream>
#include <queue>
#include <stack>
#include<algorithm>
#include<set>
using namespace std;
#define INF 1e8
#define eps 1e-8
#define LL long long
#define N 100010
#define mol 1000000007
int i,n,t;
LL a[N],l[N],r[N],Max;
int main()
{
while (scanf("%d",&n) && n)
{
for (i=1; i<=n; ++i) scanf("%I64d",&a[i]);
l[1]=1;
r[n]=n;
for(i=2;i<=n;i++)
{
t=i;
while(t>1&&a[i]<=a[t-1])//从左往右向左扩展
t=l[t-1];
l[i]=t;
}
for(i=n-1;i>=1;i--)
{
t=i;
while(t<n&&a[i]<=a[t+1])//从右往左向右扩展
t=r[t+1];
r[i]=t;
}
Max=0;
for (i=1; i<=n; ++i)
{
if ((r[i]-l[i]+1)*a[i]>Max)
Max=(r[i]-l[i]+1)*a[i];
}
printf("%I64d\n",Max);
}
return 0;
}
1505题意:求最大零(F)矩阵,1506加强版,把2维转换化成以每一行底,组成的最大面积
#include<cstdio>
#include<stdlib.h>
#include<string.h>
#include<string>
#include<map>
#include<cmath>
#include<iostream>
#include <queue>
#include <stack>
#include<algorithm>
#include<set>
using namespace std;
#define INF 1e8
#define eps 1e-8
#define LL long long
#define maxn 1001
#define mol 1000000007
int t,n,m,a[maxn][maxn],l[maxn][maxn],r[maxn][maxn];
char s[maxn];
int main()
{ scanf("%d",&t);
while(t--)
{
scanf("%d%d",&n,&m);
int i,j;
memset(a,0,sizeof(a));
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
scanf("%s",s);
if(s[0]=='F') a[i][j]=a[i-1][j]+1;
else a[i][j]=0;
}
}
//printf("\n");
int ans=0;
for(i=1;i<=n;i++)
{
int t;
l[i][1]=1;r[i][m]=m;
for(j=2;j<=m;j++)
{
t=j;
while(t>1&&a[i][j]<=a[i][t-1])
t=l[i][t-1];
l[i][j]=t;
}
for(j=m-1;j>0;j--)
{
t=j;
while(t<m&&a[i][j]<=a[i][t+1])
t=r[i][t+1];
r[i][j]=t;
}
for(j=1;j<=m;j++)
{
if(a[i][j]*(r[i][j]-l[i][j]+1)>ans)
ans=a[i][j]*(r[i][j]-l[i][j]+1);
}
}
printf("%d\n",ans*3);
}
return 0;
}
/*
2
5 6
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 5 5
R R R R R
R R R R R
R R R R R
R R R R R
R R R R R
*/
版权声明:本文博主原创文章,博客,未经同意不得转载。
HDU 1505 Largest Rectangle in a Histogram && HDU 1506 City Game(动态规划)的更多相关文章
- HDU 1506 & 1505 - Largest Rectangle in a Histogram & City Game
Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- 暑期训练狂刷系列——Hdu 3506 Largest Rectangle in a Histogram (单调栈)
题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=1506 题目大意: 给出一个数列An,问以Ai为最小值的区间内有多少个元素? 解题思路: 手动模拟一个 ...
- hdu 1507 Largest Rectangle in a Histogram 动态规划计算最大面积
记录动态规划dpl,dpr,分辨记录i左面的比i大的,右面比i大的,然后(dpr[i]-dpl[i]+1)*h[i]得出长度 动态转移方程while(temp>1 && h[te ...
- uva 1506 Largest Rectangle in a Histogram
Largest Rectangle in a Histogram http://acm.hdu.edu.cn/showproblem.php?pid=1506 Time Limit: 2000/100 ...
- Largest Rectangle in a Histogram(附上几组测试数据)
Largest Rectangle in a Histogram http://acm.hdu.edu.cn/showproblem.php?pid=1506 Time Limit: 2000/100 ...
- HDU——T 1506 Largest Rectangle in a Histogram|| POJ——T 2559 Largest Rectangle in a Histogram
http://acm.hdu.edu.cn/showproblem.php?pid=1506 || http://poj.org/problem?id=2559 Time Limit: 2000/1 ...
- HDU 1506 Largest Rectangle in a Histogram (dp左右处理边界的矩形问题)
E - Largest Rectangle in a Histogram Time Limit:1000MS Memory Limit:32768KB 64bit IO Format: ...
- HDU 1506 Largest Rectangle in a Histogram set+二分
Largest Rectangle in a Histogram Problem Description: A histogram is a polygon composed of a sequenc ...
- hdu 1506 Largest Rectangle in a Histogram 构造
题目链接:HDU - 1506 A histogram is a polygon composed of a sequence of rectangles aligned at a common ba ...
随机推荐
- Oracle SQL Lesson (6) - 使用Join进行联合查询
使用连接SQL 1999SELECT table1.column, table2.columnFROM table1[NATURAL JOIN table2] |[JOIN table2 USING ...
- RedGate 工具SQLMultiScript1.1
原文:RedGate 工具SQLMultiScript1.1 RedGate 工具SQLMultiScript1.1 SQLMultiScript是一个脚本分发工具,当你写好了一个SQL脚本之后,你需 ...
- LightOj 1148 Basic Math
1148 - Mad Counting PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory Limit: 32 MB Mob ...
- Objective C (iOS) for Qt C++ Developers(iOS开发,Qt开发人员需要了解什么?)
Qt/C++开发人员眼中的Obj-C 对于我们第一次自己定义iOS应用来说,对于来自Qt/C++开发人员来说,我不得不学习Objective-C相关语法与知识 为了让读者可以更easy理解这 ...
- Sencha Architect 2 的使用
俗话说的好, 工欲善其事必先利其器, 用Sencha开发的语言, 自己可能不太熟悉, 写出来很麻烦, 于是给大家介绍一个工具. 启动程序第一个界面: 单击第一个Go按钮, 创建一个项目.进入以后, 单 ...
- 【6】和作为连续序列s
称号:输入一个整数s,并打印出所有s整数的连续序列(含有至少2的数量). 如输入9,输出2.3.4和4.5两个序列 方案一:因为序列至少要2个数,则两个数上限值为(1+s)/2,我们能够枚举该序列的起 ...
- XMPP得知--建立一个管理类
参考其他demo之后,设立一个管理类的发现看起来更舒服,理-- 但在建立与server连接其中.发现 Connect Error: { NSLocalizedDescription = &qu ...
- C++ Primer 学习笔记_45_STL实践与分析(19)--建筑常规算法
STL实践与分析 --泛型算法的结构 引言: 正如全部的容器都建立在一致的设计模式上一样,算法也具有共同的设计基础. 算法最主要的性质是须要使用的迭代器种类.全部算法都指定了它的每一个迭代器形參可使用 ...
- iis6开户gzip 网站属性里面没有服务选项卡
请注意一点,是直接在名为“网站”的文件夹上面右键选择属性,不是去点下面建立的某一个网站.开户GZIP是整台服务器上面的虚拟主机都同时开启的,不对针某一个单独网站. 开启Gzip具体步骤: 1. 在 & ...
- grep在一个特定的文件搜索文件夹keyword
grep -R --include="*.*"(文件名匹配) key(keyword) dir(夹) eg.在当前文件夹搜索xml关键文件172.19.32.22 grep -R ...