HUST 1630 largest rectangle(思维题)
来源:互联网 发布:做组织结构图软件 编辑:程序博客网 时间:2024/05/17 05:14
largest rectangle
Time Limit: 1 Sec Memory Limit: 128 MBSubmissions: 11 Solved: 4
Description
Given n positive integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.
The largest rectangle is shown in the shaded area, which has area = 10 unit.
Input
The first line of the input file contains an integer T (T<=100) specifying the number of test cases.
Each test case begins with a line containing an integer N (1<=N<=100000),The following N-1 lines each contain a integer A[i](1<=A[i]<=10000).
Output
For each query, output a single line containing largest area.
Sample Input
262156231012345679108
Sample Output
1030
HINT
Source
The 8th(2013) ACM Programming Contest of HUST
直接枚举最低点,分别枚举最低点的位置,也就是以每一个柱子为最低点进行枚举,算左边有多少高于等于它的,右边同理
计算的时候利用上一次的结果进行跳转,接近O(n)
#include <string.h>#include <stdio.h>#include <algorithm>#include <iostream>using namespace std;const int maxn = 110000;int rec[maxn],n;int l[maxn],r[maxn];int main(){ int i,j,k,t,now,ans; scanf("%d",&t); while(t--){ ans=-1; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&rec[i]); memset(l,0,sizeof(l)); memset(r,0,sizeof(r)); for(i=2;i<=n;i++){ now=i-1; while(now>0 && rec[i]<=rec[now]){ l[i]+=l[now]+1; now-=l[now]; now--; } } for(i=n-1;i>0;i--){ now=i+1; while(now<=n && rec[i]<=rec[now]){ r[i]+=r[now]+1; now+=r[now]; now++; } } for(i=1;i<=n;i++) ans=max(ans,(l[i]+r[i]+1)*rec[i]); printf("%d\n",ans); } return 0;}
0 0
- HUST 1630 largest rectangle(思维题)
- HUST 1644 (思维)
- HDU-1506-Largest Rectangle in a Histogram【思维】【dp】【好题】
- hdu 1506 Largest Rectangle in a Histogram【思维】
- largest rectangle
- Largest Rectangle
- 笔试题next_permutation & Largest Rectangle in Histogram
- Largest Rectangle in a Histogram(DP)
- Largest Rectangle in Histogram (栈)
- LeetCode(84) Largest Rectangle in Histogram
- Leetcode_c++: Largest Rectangle in Histogram (084)
- 84. Largest Rectangle in Histogram(难)
- 84、Largest Rectangle in Histogram(Hard)
- (难点)[LeetCode]Largest Rectangle in Histogram
- Largest Rectangle in Histogram(分治法)
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- Largest Rectangle in Histogram
- 【笔试题】整理一
- onInterceptTouchEvent和onTouchEvent调用时序
- phonegap百度社会化分享-插件ios
- Android_BlockingQueue_并发线程
- 成员函数指针与高性能的C++委托
- HUST 1630 largest rectangle(思维题)
- springMVC+mybatis+dwr中如何使用dwr
- Ubuntu下R包XML的安装
- 一个MFC应用程序的生命周期
- Effective Java 2ed心得1
- Github最流行的10,000个Java项目使用的类库
- Java 正确的做字符串编码转换
- 表单实例
- CPU-bound(计算密集型) 和I/O bound(I/O密集型)