hdu 1506 (dp) Largest Rectangle in a Histogram
来源:互联网 发布:uglify python 编辑:程序博客网 时间:2024/05/09 11:22
一直long long 过不去。。。然后,改成__int64竟然过了。。。
1505的减弱版。。
分别计算a[i]点的左右比它高的所有相邻的点的长度就可以了。
用l[i],r[i]表示左右的长度。
a[l[i]-1]>=a[i] l[i]=l[l[i]-1];
a[r[i]+1]>=a[i] r[i]=r[r[i]+1];
#include <iostream>using namespace std;__int64 l[100005],r[100005];__int64 a[100005];int main(){int n;while(scanf("%d",&n)==1&&n){for(int i=0;i<n;i++)l[i]=r[i]=i;for(int i=0;i<n;i++){scanf("%I64d",&a[i]);while(l[i]-1>=0&&a[l[i]-1]>=a[i])l[i]=l[l[i]-1];}for(int i=n-2;i>=0;i--)while(r[i]+1<n&&a[r[i]+1]>=a[i])r[i]=r[r[i]+1];__int64 max=0;for(int i=0;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;}
- hdu 1506 Largest Rectangle in a Histogram DP 单调队列
- hdu 1506 (dp) Largest Rectangle in a Histogram
- HDU 1506 动态规划(DP) Largest Rectangle in a Histogram
- HDU 1506 Largest Rectangle in a Histogram(DP)
- HDU 1506 Largest Rectangle in a Histogram(DP)
- HDU 1506 Largest Rectangle in a Histogram(dp)
- Largest Rectangle in a Histogram - HDU 1506 dp
- HDU 1506 Largest Rectangle in a Histogram(DP)
- hdu 1506 Largest Rectangle in a Histogram(DP)
- hdu 1506 Largest Rectangle in a Histogram DP
- HDU 1506 Largest Rectangle in a Histogram (线性dp)
- hdu 1506 Largest Rectangle in a Histogram (DP)
- hdu 1506 Largest Rectangle in a Histogram(dp)
- [HDU 1506 Largest Rectangle in a Histogram] ...类dp?...
- hdu 1506 Largest Rectangle in a Histogram (dp思想)
- HDU 1506 Largest Rectangle in a Histogram(DP)
- 【HDU 1506】Largest Rectangle in a Histogram(DP)
- HDU-1506-Largest Rectangle in a Histogram(区间DP)
- 改变指针指向
- 今天的一下子跳出来了的超级玛丽
- 容器迭代器操作
- 架构设计:生产者/消费者模式
- trap catch signal
- hdu 1506 (dp) Largest Rectangle in a Histogram
- STRUTES2整合SPRING出现的问题
- android带索引和标题的listview
- jvmstat3.0工具的安装和使用
- 驱动编程WIN7 + WINDBG + VM(XP)正确配置
- Boost - shared_ptr
- android的一款日期选择控件
- 手把手教你估算软件项目成本
- ping不通svn时,可改C:\WINDOWS\system32\drivers\etc\hosts文件