博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu Largest Rectangle in a Histogram
阅读量:6980 次
发布时间:2019-06-27

本文共 808 字,大约阅读时间需要 2 分钟。

这道题目是一道动态规划的题目,动态规划的点不在面积上,而在每个矩形可左右扩展的坐标上。找出每个矩形最左边和最右边比它高的矩形的下标,最后求面积即可;

#include"stdio.h"__int64 h[100010],ans,temp;int l[100010],r[100010];int main(){    int n,i,j;    while(scanf("%d",&n),n)    {        for(i=1;i<=n;i++)        {            scanf("%I64d",&h[i]);            l[i]=r[i]=i;        }        h[0]=h[n+1]=-1;        for(i=1;i<=n;i++)        {            while(h[l[i]-1]>=h[i])                l[i]=l[l[i]-1];        }        for(i=n;i>=1;i--) //注意这个顺序,tle了好几次都是因为用的是i++,i<=n        {            while(h[r[i]+1]>=h[i])                r[i]=r[r[i]+1];        }        ans=0;        for(i=1;i<=n;i++)        {            temp=h[i]*(r[i]-l[i]+1);            if(temp>ans) ans=temp;        }       printf("%I64d\n",ans);    }    return 0;}
View Code

 

转载于:https://www.cnblogs.com/acm-jing/p/4404839.html

你可能感兴趣的文章
闲谈.Net类型之public的不public,fixed的不能fixed
查看>>
5.5. 怎样写注释信息
查看>>
Android高级界面组件的学习(三)
查看>>
DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践(3)
查看>>
JVM 常量池理解
查看>>
【设计模式】—— 创建者模式Builder
查看>>
C++/Php/Python 语言执行shell命令
查看>>
2017年物联网发展走向的11种预测
查看>>
降低物联网设备安全风险的六大因素
查看>>
Phalcon入门教程之模型CURD(2)
查看>>
四川成立大数据发展研究会 拟建公共云暨数据交易中心
查看>>
安全公司发现针对印度外交部与军事机构的间谍活动
查看>>
无接口.NET代码的单元测试
查看>>
数据库产品如何选型
查看>>
如何管理跨部门的沟通与协作?
查看>>
国防科大联合交流团来榕洽谈智慧城市建设合作
查看>>
日本外务省新设网络安全保障政策室
查看>>
美“智能城市挑战赛”决赛名单公布:7座城市入围
查看>>
企业全光网将成运营商部署千兆接入的商业驱动力
查看>>
sql 2000 分页存储过程
查看>>