青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

輸油管道問題 (POJ - 1723)

   先看算導(dǎo)上輸油管道問題的描述:


   這個(gè)題,雖然說給出了井的x,y坐標(biāo),但是要修建的主管道卻只是一條橫向的,而且其余管道也只是到這條管道的豎向距離。
那么,就轉(zhuǎn)換為確定一條直線 y = m,使得其它個(gè)點(diǎn)到這條直線的距離最多。也許不需要多的提示,大家的直覺就會(huì)想到應(yīng)該
選所有y值的中點(diǎn)。但是,這個(gè)的證明卻不是那么的明顯。

證明如下:
   設(shè)所有的y值系列為y1,y2,...,yn,并且假設(shè)這個(gè)是按遞增排列的。我們要求的是Sum = Σ|yi-m|(1<=i<=n),
   
   1)顯然假如選小于y1或者大于yn的y=m都不會(huì)比選y1或者yn更好。
   2)如果選y1或者yn,那么|y1-m|+|yn-m| = |yn-y1|都是一樣的結(jié)果,甚至選y1和yn之間的任意一個(gè)值。
   3)如此繼續(xù)下去,對(duì)于y2和yn,也有2)所描述的性質(zhì)
   4)繼續(xù)到最后,只需要取最中間一對(duì)點(diǎn)之間的值即可,如果n是奇數(shù),那么就是中間的點(diǎn),如果n是偶數(shù),取任意一個(gè)中間
        點(diǎn)都可以


   通過上面證明,我們可以選取第y(n/2 + 1)作為修建主管道的地方。當(dāng)然這可能是唯一的最優(yōu)選擇,或者無數(shù)個(gè)最優(yōu)選擇中的一個(gè)。
那么現(xiàn)在已經(jīng)轉(zhuǎn)換為求中位數(shù)了,求中位數(shù)的辦法最簡單的是對(duì)序列排序然后取中間的即可。算法導(dǎo)論上有一種平均代價(jià)O(n)的辦法,
思路類似于快速排序,快排的每一次操作都是劃分?jǐn)?shù)組,前小后大,如果我們也這一次次去劃分?jǐn)?shù)組,剛好軸元素處于我們要求的那個(gè)位置
上那么就達(dá)到我們的目的了,下面的代碼中Select函數(shù)就是求一個(gè)數(shù)組的中位數(shù)。


   對(duì)于POJ 1723題,很顯然y的選擇是中位數(shù)即可,x的選擇需要轉(zhuǎn)換一下也變成求中位數(shù)了。題目中描述,最后要達(dá)到的效果是每個(gè)士
兵都占成一橫排,而且彼此相鄰,也就是y相同,但是x系列是k,k+1,k+2,...,k+n-1。那么如何從原來的x0,x1,x2,...,x(n-1)移動(dòng)過去了。
可以簡單的考慮下,將最左邊的士兵移動(dòng)到k,次左的移動(dòng)到k+1,...,最右邊的移動(dòng)到k+n-1,所需要的移動(dòng)之和一定是最小的。那么我們
可以將原來的x0-x(n-1)排序,得到x'0,x'1,...,x'(n-1),要求的Sum = Σ|x'i - (k + i)| = Σ|(x'i - i) -  k|,那么要使Sum最小,只需要
求序列X'i - i的中位數(shù)即可了。

代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
using std::sort;
using std::swap;
#define MAX (10000 + 10)
int Partion(int* pnA, int nLen)
{
    int i, j;
    for (i = j = 0; i < nLen - 1; ++i)
    {
        if (pnA[i] < pnA[nLen - 1])
        {
            swap(pnA[i], pnA[j++]);
        }
    }
    swap(pnA[j], pnA[nLen - 1]);
    return j;
}
int Select(int* pnA, int nLen, int nIndex)
{
    if (nLen > 1)
    {
        int nP = Partion(pnA, nLen);
        if (nP + 1 == nIndex)
        {
            return pnA[nP];
        }
        else if (nP + 1 > nIndex)
        {
            return  Select(pnA, nP, nIndex);
        }
        else
        {
            return Select(pnA + nP + 1, nLen - nP - 1, nIndex - nP - 1);
        }
    }
    else
    {
        return pnA[0];
    }
}
int main()
{
    int nX[MAX];
    int nY[MAX];
    int nN;
    int i;
    while (scanf("%d", &nN) == 1)
    {
        for (i = 0; i < nN; ++i)
        {
            scanf("%d%d", &nX[i], &nY[i]);
        }
        int nMY = Select(nY, nN, nN / 2 + 1);
        sort(nX, nX + nN);
        for (i = 0; i < nN; ++i)
        {
            nX[i] = nX[i] - i;
        }
        int nMX = Select(nX, nN, nN / 2 + 1);
        int nSum = 0;
        for (i = 0; i < nN; ++i)
        {
            nSum += abs(nX[i] - nMX);
            nSum += abs(nY[i] - nMY);
        }
        printf("%d\n", nSum);
    }
    
    return 0;
}

posted on 2012-03-09 14:27 yx 閱讀(2332) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 順序統(tǒng)計(jì)

<2012年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

導(dǎo)航

統(tǒng)計(jì)

公告

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

me

好友

同學(xué)

網(wǎng)友

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品99久久99久久久二8 | 亚洲美女精品一区| 欧美视频在线观看一区| 国产日产高清欧美一区二区三区| 国产精品久久久一区二区三区| 欧美日韩高清在线播放| 国产精品久久久久久久久久三级 | 欧美大片免费观看| 国产午夜亚洲精品羞羞网站| 久久蜜臀精品av| 免费亚洲电影在线| 欧美国产先锋| 久久久久国产一区二区| 在线观看成人一级片| 亚洲大片av| 亚洲视频在线观看网站| 国产精一区二区三区| 欧美成人高清视频| 欧美gay视频| 国产精品免费一区二区三区观看| 欧美中在线观看| 老鸭窝毛片一区二区三区 | 性刺激综合网| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲国内高清视频| 欧美一区二区在线视频| 国模精品娜娜一二三区| 可以免费看不卡的av网站| 99精品免费视频| 欧美激情国产日韩精品一区18| 欧美伊人久久久久久午夜久久久久| 免费在线日韩av| 日韩视频一区| 一色屋精品亚洲香蕉网站| 国产精品视频第一区| 亚洲国产婷婷| 久久99伊人| 韩日视频一区| 久久综合影视| 亚洲午夜一二三区视频| 亚洲免费av观看| 亚洲午夜成aⅴ人片| 国产女精品视频网站免费| 狼人天天伊人久久| 国产精品一区二区久激情瑜伽| 国产最新精品精品你懂的| 一本色道久久综合狠狠躁篇怎么玩 | 久久精品国产综合| 日韩一级免费| 久久亚洲精品中文字幕冲田杏梨| 欧美视频在线播放| 亚洲精品一区中文| 欧美夫妇交换俱乐部在线观看| 欧美成人国产一区二区| 亚洲已满18点击进入久久| 亚洲综合色丁香婷婷六月图片| 一本大道久久a久久综合婷婷 | 欧美激情免费观看| 久久久夜色精品亚洲| 红桃视频一区| 老**午夜毛片一区二区三区| 欧美在线视频免费观看| 久久亚洲不卡| 狠狠干狠狠久久| 老司机午夜免费精品视频| 性久久久久久久久久久久| 国产女人精品视频| 久久精品99国产精品日本| 久久午夜精品一区二区| 蜜臀久久99精品久久久久久9| 亚洲尤物在线| 国产欧美日本| 久久偷看各类wc女厕嘘嘘偷窃| 欧美伊人影院| 亚洲国产精品久久久久| 亚洲综合久久久久| 久久精品91| 久久福利资源站| 国产精品久久久久久久久久久久久| 日韩手机在线导航| 亚洲男人第一av网站| 国产欧美日韩视频一区二区| 亚洲欧美日韩在线高清直播| 另类专区欧美制服同性| 久久久在线视频| 99国产精品99久久久久久粉嫩| 性18欧美另类| 最新国产拍偷乱拍精品| 亚洲免费在线看| 国产一区二区三区在线播放免费观看| 亚洲三级免费观看| 久久亚洲精选| 欧美成人免费在线| 午夜欧美大片免费观看| 亚洲国产另类 国产精品国产免费| 欧美激情2020午夜免费观看| 亚洲一区二区三区欧美 | 在线视频亚洲欧美| 欧美国产日韩一二三区| 欧美日韩国产三级| 久久精品毛片| 欧美日韩亚洲三区| 一区二区欧美激情| 欧美亚洲视频在线看网址| 亚洲三级免费| 久久久久久高潮国产精品视| 日韩视频中午一区| 久久久国产精品亚洲一区| 亚洲综合日韩在线| 欧美国产日韩二区| 久久久精品一区二区三区| 亚洲欧美美女| 一二三区精品| 美女尤物久久精品| 亚洲精品视频免费在线观看| 亚洲女同同性videoxma| 99综合电影在线视频| 久久久另类综合| 久久久999精品免费| 国产精品久久综合| av成人免费| 一区二区三区四区蜜桃| 欧美大片91| 亚洲成人资源| 欧美区一区二区三区| 亚洲最新中文字幕| 久久久久久国产精品一区| 欧美在线观看日本一区| 欧美性淫爽ww久久久久无| 欧美亚洲专区| 欧美系列一区| 日韩一级黄色片| 亚洲专区国产精品| 国产精品99免费看 | 国产精品天美传媒入口| 欧美电影在线| 亚洲欧美日韩国产中文| 欧美日韩精品免费| 久久中文字幕导航| 黄色av一区| 久久精品国产99国产精品| 久久久久九九九| 黑人一区二区三区四区五区| 欧美一级网站| 猫咪成人在线观看| 亚洲欧洲日本专区| 亚洲午夜av电影| 欧美一级黄色录像| 国产亚洲福利社区一区| 性刺激综合网| 欧美国产日韩视频| 一区二区三区精品视频| 国产精品久久久久av免费| 亚洲一区亚洲| 榴莲视频成人在线观看| 亚洲精品一区二区在线| 欧美日本三级| 午夜精品视频在线观看| 免费成人美女女| 日韩视频免费在线观看| 欧美色欧美亚洲高清在线视频| 夜夜爽av福利精品导航| 久久国产直播| 亚洲精品影视在线观看| 国产精品国产三级国产普通话蜜臀| 亚洲午夜一区二区| 蜜桃av噜噜一区二区三区| 日韩一区二区免费高清| 国产欧美一区二区三区视频| 米奇777超碰欧美日韩亚洲| 亚洲视频电影在线| 欧美福利视频在线观看| 午夜精品久久久久久久久久久久久 | 一区二区三区黄色| 狠狠色噜噜狠狠色综合久| 狼人天天伊人久久| 亚洲天堂成人| 欧美大片在线观看| 亚洲一区二区三区四区五区黄| 国产一区观看| 欧美日韩三级在线| 久久久久久久性| 在线亚洲自拍| 亚洲电影有码| 亚洲国产成人精品视频| 欧美色视频在线| 美日韩精品免费观看视频| 午夜精品99久久免费| 亚洲国产一区二区三区青草影视| 先锋a资源在线看亚洲| 亚洲另类黄色| 亚洲第一网站免费视频| 国产欧美精品va在线观看| 欧美日本在线播放| 久久综合国产精品| 午夜亚洲激情| 亚洲主播在线| 亚洲桃色在线一区| 99成人免费视频| 亚洲精一区二区三区|