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

輸油管道問題 (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>
            国产麻豆精品久久一二三| 欧美在线一区二区三区| 欧美专区福利在线| 久久精品日韩一区二区三区| 久久9热精品视频| 久久久免费av| 欧美风情在线观看| 亚洲福利在线观看| 日韩视频亚洲视频| 亚洲综合三区| 老司机午夜精品视频在线观看| 欧美成人按摩| 国产精品网曝门| 亚洲国产精品成人精品| 这里只有精品视频| 久久综合给合久久狠狠色| 欧美激情精品久久久久久| 亚洲精品资源| 久久久久久久久一区二区| 久久综合亚州| 亚洲精品免费在线播放| 亚洲免费视频网站| 另类av导航| 国产精品成人播放| 亚洲激情网站免费观看| 午夜精品免费视频| 亚洲黄色av一区| 久久国产精品亚洲77777| 欧美日本簧片| 在线观看成人小视频| 午夜欧美电影在线观看| 亚洲国产日韩美| 久久九九热re6这里有精品| 国产精品久久一区二区三区| 亚洲人成人99网站| 久久综合五月天婷婷伊人| 亚洲午夜久久久久久久久电影院 | 亚洲桃色在线一区| 久久中文在线| 亚洲综合电影| 欧美私人啪啪vps| 亚洲美女中文字幕| 噜噜噜久久亚洲精品国产品小说| 亚洲网在线观看| 欧美日韩在线免费视频| 亚洲精品久久嫩草网站秘色| 蜜臀av国产精品久久久久| 亚洲欧美日韩国产中文在线| 欧美日韩一区二区三区四区五区| 亚洲日本国产| 欧美大片在线观看| 久久这里只有| 在线看欧美日韩| 久久综合亚州| 麻豆成人av| 亚洲人体1000| 亚洲国产成人精品视频| 蜜臀91精品一区二区三区| 在线观看福利一区| 欧美凹凸一区二区三区视频| 久久久精品2019中文字幕神马| 国产一区二区av| 久久亚洲欧洲| 另类av一区二区| 亚洲七七久久综合桃花剧情介绍| 欧美激情视频一区二区三区在线播放 | 欧美不卡视频一区发布| 在线观看不卡| 欧美国产精品劲爆| 欧美乱妇高清无乱码| 日韩视频二区| av成人动漫| 欧美亚洲自偷自偷| 国产午夜精品理论片a级大结局| 午夜久久一区| 久久精品国产69国产精品亚洲| 亚洲国产日韩欧美| 一区二区三区国产在线观看| 国产精品影片在线观看| 免费成人av| 欧美日韩亚洲一区二区| 性色av一区二区怡红| 久久精品国产91精品亚洲| 亚洲日韩中文字幕在线播放| 一本一本久久| 伊人色综合久久天天五月婷| 亚洲日本黄色| 国产在线精品自拍| 亚洲另类在线视频| 国产手机视频精品| 91久久精品网| 国产午夜一区二区三区| 亚洲国产一二三| 国产精品日本| 亚洲国产精品成人| 国产欧美日韩综合一区在线观看| 欧美91大片| 国产精品入口夜色视频大尺度| 久久中文字幕导航| 国产精品国产三级国产专播精品人| 狼人社综合社区| 国产精品欧美风情| 亚洲韩国日本中文字幕| 国产主播精品| 亚洲综合电影| 一区二区三区四区五区精品视频| 久久激情网站| 欧美一区二区三区视频在线| 久久久亚洲一区| 午夜久久影院| 欧美日韩一区二区三区免费看| 免费欧美电影| 国内精品国语自产拍在线观看| 日韩视频不卡| 亚洲欧洲日本一区二区三区| 久久超碰97中文字幕| 午夜日本精品| 欧美性猛交一区二区三区精品| 亚洲大胆av| 永久久久久久| 久久精精品视频| 久久9热精品视频| 国产精品日韩欧美| 中文一区二区| 亚洲免费影视第一页| 欧美日韩精品一区视频| 亚洲国产清纯| 亚洲免费成人av| 欧美高清视频在线观看| 女人天堂亚洲aⅴ在线观看| 国一区二区在线观看| 午夜精品福利在线| 欧美一区二区三区在线看| 国产精品久久久91| 亚洲视频一区| 午夜精品福利视频| 国产精品视频xxx| 午夜在线观看欧美| 久久这里有精品视频| 久久亚洲一区| 老司机午夜精品视频在线观看| 国产午夜亚洲精品羞羞网站| 欧美在线视频不卡| 免费成人美女女| 亚洲欧洲一二三| 欧美区日韩区| 亚洲一区二区3| 久久久精品午夜少妇| 一区二区三区在线观看欧美| 久久免费的精品国产v∧| 亚洲国产欧美一区二区三区久久| 99国内精品久久| 国产精品久久久久一区二区三区 | 亚洲激情网址| 欧美日韩国产a| 亚洲免费在线观看| 噜噜噜久久亚洲精品国产品小说| 最新成人av在线| 国产精品久久激情| 久热精品视频在线免费观看| 亚洲人精品午夜| 欧美一区二区三区四区在线观看| 在线日韩电影| 国产精品黄视频| 久久躁狠狠躁夜夜爽| 一本久久综合亚洲鲁鲁| 久久精品天堂| 中日韩视频在线观看| 韩国一区二区三区在线观看 | 欧美午夜激情在线| 久久久久久有精品国产| 亚洲人成亚洲人成在线观看图片| 欧美一级免费视频| 亚洲精品一区二区三| 国产欧美一区二区三区国产幕精品 | 亚洲精品欧洲精品| 久久久蜜桃一区二区人| 99精品欧美一区二区三区| 国产欧美日韩在线| 欧美日韩国产精品成人| 久久成人精品视频| 在线视频欧美一区| 欧美激情视频网站| 久久国产福利国产秒拍| 99国产欧美久久久精品| 精品999成人| 国产精品欧美日韩久久| 欧美激情久久久久| 久久人人超碰| 欧美一区二区三区视频免费播放| 日韩视频在线一区二区| 另类专区欧美制服同性| 欧美一区亚洲一区| 亚洲线精品一区二区三区八戒| 亚洲国产成人精品久久久国产成人一区| 欧美性猛交xxxx乱大交蜜桃| 欧美金8天国| 欧美高清视频一二三区| 麻豆精品传媒视频| 久久久久一区二区三区四区|