• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            gzwzm06

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              1 隨筆 :: 52 文章 :: 17 評(píng)論 :: 0 Trackbacks
             1//棧模擬---157ms
             2//更好的方法,也許是DP吧
             3
             4#include <cstdio>
             5
             6const int SIZE = 100001 ;
             7
             8struct STACK
             9{
            10    __int64 ht ;
            11    int pos ;
            12}
             ;
            13
            14STACK stack[SIZE] ;
            15int top ;
            16
            17int N ;
            18__int64 height[SIZE] ;
            19
            20__int64 GetMaxArea()
            21{
            22    __int64 ans , temp ;
            23    int i ;
            24    
            25    top  = 0 ;
            26    
            27    stack[top].ht = height[0] ;
            28    stack[top].pos = 0 ;
            29    ans = height[0] ;
            30    height[N] = 0 ;
            31
            32    for ( i = 1 ; i <= N ; ++i )
            33    {
            34        if ( height[i] <= stack[top].ht )
            35        {
            36            while ( top >= 0 && height[i] <= stack[top].ht )
            37            {
            38                temp = stack[top].ht * (i - stack[top].pos) ;
            39
            40                if ( temp > ans )
            41                    ans = temp ;
            42
            43                top-- ;
            44            }

            45            top++ ;
            46            stack[top].ht = height[i] ;
            47        }

            48        else {
            49            stack[++top].ht = height[i] ;
            50            stack[top].pos = i ;
            51        }

            52    }

            53        
            54    return ans ;
            55}

            56
            57int main()
            58{
            59//    freopen("1.txt", "r", stdin) ;
            60
            61    int i ;
            62
            63    while ( scanf("%d"&N) && N != 0 )
            64    {
            65        for ( i = 0 ; i < N ; ++i )
            66        {
            67            scanf("%I64d"&height[i]) ;
            68        }

            69
            70        __int64 ans = GetMaxArea() ;
            71
            72        printf("%I64d\n", ans) ;
            73    }

            74
            75    return 0 ;
            76}
            posted on 2009-03-05 23:17 閱讀(645) 評(píng)論(3)  編輯 收藏 引用 所屬分類: DP

            評(píng)論

            # re: POJ 2559--Largest Rectangle in a Histogram(棧模擬)[未登錄] 2009-07-02 12:26 xc
            如果輸入的測(cè)試數(shù)據(jù)是 2 1 10
            你的代碼輸出是 1
            可正確的輸出應(yīng)該是 10  回復(fù)  更多評(píng)論
              

            # re: POJ 2559--Largest Rectangle in a Histogram(棧模擬)[未登錄] 2009-07-02 12:32 xc
            48 else {
            if (height[i] > ans)
            ans = height[i] ;
            49 stack[++top].ht = height[i] ;
            50 stack[top].pos = i ;
            51 }
              回復(fù)  更多評(píng)論
              

            # re: POJ 2559--Largest Rectangle in a Histogram(棧模擬)[未登錄] 2009-07-02 12:39 xc
            不好意思沒看見“ height[N] = 0 ;”這句話  回復(fù)  更多評(píng)論
              

            国产情侣久久久久aⅴ免费| 国内精品久久久久久久久电影网| 伊人久久大香线蕉AV一区二区| 久久精品国产色蜜蜜麻豆| 欧美亚洲另类久久综合婷婷| 亚洲综合日韩久久成人AV| 国产一区二区三区久久| 性做久久久久久久久久久| 久久精品99久久香蕉国产色戒 | 大香伊人久久精品一区二区| 中文字幕乱码久久午夜| 国产福利电影一区二区三区久久老子无码午夜伦不 | 大蕉久久伊人中文字幕| 无码AV波多野结衣久久| 久久亚洲熟女cc98cm| 久久精品国产一区二区| 青青青青久久精品国产h| 婷婷久久综合九色综合绿巨人| 99久久成人国产精品免费| 精品综合久久久久久98| 99久久综合国产精品免费| 久久亚洲国产最新网站| 99久久777色| 久久久久久亚洲Av无码精品专口| 久久精品无码一区二区app| 91久久精一区二区三区大全| 欧美黑人激情性久久| 亚洲人成网站999久久久综合| 久久免费国产精品一区二区| 日韩AV无码久久一区二区 | 亚洲精品无码久久久久sm| 性高湖久久久久久久久AAAAA| 中文字幕久久欲求不满| 99久久精品国内| 久久夜色tv网站| 欧美亚洲另类久久综合| 精品综合久久久久久97超人 | 久久91精品国产91久久麻豆| 99久久er这里只有精品18| 久久精品无码专区免费东京热| 久久综合88熟人妻|