近期情绪太不稳定了。可能是由于在找实习这个过程碰壁了吧。第一次面试就跪了,可能是我面的是一个新公司,制度不完好,我感觉整个面试过程全然不沾编程,我面试的还是软件开发~后来我同学面试的时候。说是有一道数学题了。最后都已经签了,orz...其它同学都陆续签了,有签了知乎。有签了猎豹的,有签了阿里的,我还在想着打比赛,作为一个快大四的人。我还想着打比赛。甚至我连队友都快没了~可是我还想坚持!到如今,我基本没课了,每天都仅仅能是刷刷题,写写python,搞搞shell,我都不知道我在干嘛~!有没有大神给我来份实习啊!!!(还是要自己去找的..)事实上,对照那些签了约的同学,一開始我就非常不服输。我认为明明我应该相比他们“厉害”啊。后来。我发现。我还是太弱了,火候没够,再坚持一把吧。

由于随时都可能组不成队伍,所以我每天刷题的时间不超过三个小时,很多其它时候仅仅是一个小时,就是早起来刷一题。

近期一直在做dp.可是今天做一题我做过的题目都弄了非常久,烦死,思想不集中!

题目的意思就是,在直方图中找一个面积最大的矩形。思想就是dp咯。就是对于每个小矩形向外扩展。直到扩展到比它矮,这样这个小矩形所组成的面积就是最大了,可是在扩展这个过程注意迭代,不然就会跪在TLE了。n^2必超的啊。

/***********************************************************
> OS : Linux 3.2.0-60-generic #91-Ubuntu
> Author : yaolong
> Mail : dengyaolong@yeah.net
> Time : 2014年06月01日 星期日 07:14:54
**********************************************************/
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;
int h[123456];
int lt[123456],rt[123456];
int main(){
int n;
while(scanf("%d",&n)&&n){
for(int i=1;i<=n;i++){
scanf("%d",&h[i]);
}
long long res=0LL;
rt[n]=n;lt[1]=1;
for(int i=n-1;i>=1;i--){
/*if(h[i]<=h[i+1]){
rt[i]=rt[i+1];
}else{
rt[i]=i;
}*/
int t=i;
while(t<n&&h[i]<=h[t+1]) t=rt[t+1];
rt[i]=t; }
for(int i=2;i<=n;i++){
/*
if(h[i]<=h[i-1]){
lt[i]=lt[i-1];
}else{
lt[i]=i;
}*/
int t=i;
while(t>1&&h[i]<=h[t-1]) t=lt[t-1];
lt[i]=t;
} for(int i=1;i<=n;i++){
res=max(res,(long long)h[i]*(rt[i]-lt[i]+1)); }
printf("%I64d\n",res);
} return 0;
}

HDU1506 ( Largest Rectangle in a Histogram ) [dp]的更多相关文章

  1. hdu---1506(Largest Rectangle in a Histogram/dp最大子矩阵)

    Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  2. NYOJ-258/POJ-2559/HDU-1506 Largest Rectangle in a Histogram,最大长方形,dp或者单调队列!

                                         Largest Rectangle in a Histogram 这么经典的题硬是等今天碰到了原题现场懵逼两小时才会去补题.. ...

  3. HDU1506 Largest Rectangle in a Histogram (动规)

    Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  4. hdu1506——Largest Rectangle in a Histogram

    Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  5. hdu1506 Largest Rectangle in a Histogram

    Problem Description A histogram is a polygon composed of a sequence of rectangles aligned at a commo ...

  6. HDU 1506 Largest Rectangle in a Histogram(DP)

    Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  7. 【题解】hdu1506 Largest Rectangle in a Histogram

    目录 题目 思路 \(Code\) 题目 Largest Rectangle in a Histogram 思路 单调栈. 不知道怎么描述所以用样例讲一下. 7 2 1 4 5 1 3 3 最大矩形的 ...

  8. HDU-1506 Largest Rectangle in a Histogram【单调栈】

    Description A histogram is a polygon composed of a sequence of rectangles aligned at a common base l ...

  9. BNUOJ-15505 Largest Rectangle in a Histogram DP

    题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=15505 每个h[i]维护两个值l[i]和r[i],分别表示大于h[i]的左边最远距离和小于 ...

随机推荐

  1. 比callback更简洁的链式执行promise

    promise自己理解的也不够深刻,具体知识点不在这里细说了 直接上个例子,清晰明了,自己去悟吧 <script type="text/javascript"> //模 ...

  2. SQL Server 一些重要视图4

    sys.master_files 为每一个数据库的每一个文件返回行.

  3. SendMessage基本认识

    SendMessage基本认识 函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.而函数PostMessage不同,将一个消息寄送到一个线 ...

  4. ViewTreeObserver简介

    Android ViewTreeObserver简介 一.结构 public final class ViewTreeObserver extends Object java.lang.Object ...

  5. poj2365---求多边形边长总和

    #include <stdio.h> #include <stdlib.h> #include<math.h> #define pi acos(-1) struct ...

  6. img 中的src的应用

    在页面载入的时候,img标签的src 会跟填写的内容去载入,servlet 或者controller 或者你自己觉得希望载入的java代码. 我们这边举一个载入servlet的样例. <img ...

  7. 选项卡 js操作

    html代码展示(这里展示的是关于日程的标签页)css样式这里省略了>>>>自己写的可能更好看 <div class="row"> <ul ...

  8. 一行统计shell

    cat count.log | awk '{print $7}' | awk '{if ($1 == "-") empty++ }END {print NR, empty, emp ...

  9. h5的api dom全屏展示

    下面是完整的例子,暂不做分析 <!DOCTYPE html> <html> <head> <title> FullScreen API 演示</t ...

  10. codeforces 401D. Roman and Numbers 数位dp

    题目链接 给出一个<1e18的数, 求将他的各个位的数字交换后, 能整除m的数的个数. 用状态压缩记录哪个位置的数字已经被使用了, 具体看代码. #include<bits/stdc++. ...