• <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>

            pku1334 Two Mountaineers 貪心+分類討論

            題意:

            兩個人爬山,時刻要保證在同一水平面上,直到兩人互換位置。問走過的最短距離。兩點間距離定義為兩點間的y軸絕對值差。
            給力條件:除了首尾兩點每個點的y坐標均不相同

            解法:
            DP?殺雞用牛刀,沒必要!
            貪心!
            首先明確,不能走回頭路,這里的回頭路指完全退回到上個步驟所在的點,顯然,這樣的走法是無意義的。
            設置兩個指針,p1指向頭,p2指向尾,循環至兩個指針重疊。下面具體分四種情況討論:
            1、如果yp1+1>yp1且yp2-1>yp2,這種情況下當然山峰高的幫助山峰低的越過低的山峰

            2、如果yp1+1>yp1且yp2-1<yp2,這種情況又要分兩種情況:
                  2.1 如果(p1,p1+1)這段上坡通過局部回退能夠讓p2度過這個山谷,顯然這樣就是p2--
                  2.2 否則p1必須回退至上個拐點,試圖獲得更低的高度,這樣就是p1--
            3、如果yp1+1<yp1且yp2-1>yp2,與上種情況類似,不加贅述。
            4、如果yp1+1<yp1且yp2-1<yp2,這種情況不應該是正常情況下應該出現的,因該是碰到某個很深的山谷后上坡段回退形成的,這時候應該繼續后退,以尋求更低點。

            代碼里寫的很清楚,大家看代碼吧:
             1# include <cstdio>
             2using namespace std;
             3# define min(a,b) ((a)<(b)?(a):(b))
             4# define max(a,b) ((a)>(b)?(a):(b))
             5int p[1001][2],n,p1,p2,ans,last;
             6int main()
             7{
             8    int test;
             9    scanf("%d",&test);
            10    while(test--)
            11    {
            12        scanf("%d",&n);
            13        for(int i=0;i<n;i++)
            14          scanf("%d %d",&p[i][0],&p[i][1]);
            15        p1=0,p2=n-1,ans=0;
            16        last=p[0][1];
            17        while(p2>p1)
            18        {
            19           if(p[p2-1][1]>p[p2][1]&&p[p1+1][1]>p[p1][1])
            20           {
            21                ans+=2*(min(p[p2-1][1],p[p1+1][1])-last);
            22                last=min(p[p2-1][1],p[p1+1][1]);
            23                if(p[p2-1][1]==last) p2--;
            24                if(p[p1+1][1]==last) p1++;
            25           }

            26           else if(p[p2-1][1]<p[p2][1]&&p[p1+1][1]>p[p1][1])
            27           {
            28              ans+=2*(last-max(p[p2-1][1],p[p1][1]));
            29              last=max(p[p2-1][1],p[p1][1]);
            30              if(last==p[p2-1][1]) p2--;
            31              else p1--;
            32           }

            33           else if(p[p2-1][1]>p[p2][1]&&p[p1+1][1]<p[p1][1])
            34           {
            35            ans+=2*(last-max(p[p2][1],p[p1+1][1]));
            36            last=max(p[p2][1],p[p1+1][1]);
            37            if(last==p[p1+1][1]) p1++;
            38            else p2++;
            39           }

            40           else
            41           {
            42              ans+=2*(min(p[p1][1],p[p2][1])-last);
            43              last=min(p[p1][1],p[p2][1]);
            44              if(last==p[p1][1]) p1--;
            45              else p2++;
            46           }

            47        }

            48        printf("%d\n",ans*2);
            49    }

            50    return 0;
            51}

            52

            posted on 2011-01-26 00:58 yzhw 閱讀(257) 評論(0)  編輯 收藏 引用 所屬分類: others

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統計

            公告

            統計系統

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久天天日天天操综合伊人av| 九九久久自然熟的香蕉图片| 久久精品国产一区| 久久精品国产亚洲精品| 久久午夜伦鲁片免费无码| 一本综合久久国产二区| 久久精品国产精品亚洲| 久久高清一级毛片| 国产成人精品久久亚洲高清不卡 | 日本福利片国产午夜久久| 无遮挡粉嫩小泬久久久久久久| 久久精品青青草原伊人| 久久婷婷色香五月综合激情 | 日本精品一区二区久久久| 国产精品免费久久久久影院 | 尹人香蕉久久99天天拍| 久久国产AVJUST麻豆| 久久久国产99久久国产一| 久久久久亚洲av成人网人人软件| 久久精品国产亚洲av麻豆图片| 国产美女亚洲精品久久久综合| 久久精品国产亚洲av麻豆蜜芽| 日日躁夜夜躁狠狠久久AV| 996久久国产精品线观看| 久久99精品久久久久久9蜜桃| 久久夜色精品国产www| 狠狠综合久久综合88亚洲| 久久99国产亚洲高清观看首页| 国产精品无码久久久久| 久久午夜无码鲁丝片秋霞| 国产精品一久久香蕉产线看| 欧美日韩成人精品久久久免费看| 2020国产成人久久精品| 久久免费视频观看| 国产99久久久国产精品小说| 麻豆一区二区99久久久久| 国产一区二区三精品久久久无广告| 亚洲精品97久久中文字幕无码| 狠狠色噜噜狠狠狠狠狠色综合久久| 久久久久久久久久久免费精品| 久久人人爽爽爽人久久久|