• <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>
            posts - 183,  comments - 10,  trackbacks - 0

            一個(gè)規(guī)劃性問題

            12個(gè)工廠分布在一條東西向高速公路的兩側(cè),工廠距離公路最西端的距離分別是0、4、5、10、12、18、27、30、31、38、39、47.在這12個(gè)工廠中選取3個(gè)原料供應(yīng)廠,使得剩余工廠到最近的原料供應(yīng)廠距離之和最短,問應(yīng)該選哪三個(gè)廠 ?
            這是阿里云實(shí)習(xí)的筆試題

            這個(gè)類似于電梯調(diào)度算法,電梯調(diào)度是一個(gè)點(diǎn),這里是三個(gè)點(diǎn)。
            最直觀的做法是枚舉所有的情況,P(12, 3)。
            其實(shí)也就是這樣。三個(gè) for 循環(huán),但是這就是一種暴力的解法。

             1 #include <iostream>
             2 #include <cmath>
             3 using namespace std;
             4 
             5 int min3(int a, int b, int c)
             6 {
             7     a = a < b ? a : b;
             8     return a < c ? a : c;
             9 }
            10 
            11 int bar(int a[], int n, int x, int y, int z)
            12 {
            13     int ret = 0;
            14     for (int i = 0; i != n; ++i)
            15     {
            16         ret += min3(abs(a[x] - a[i]), abs(a[y] - a[i]), abs(a[z] - a[i]));
            17     }
            18     return ret;
            19 }
            20 
            21 int foo(int a[], int n, int& p1, int& p2, int& p3)
            22 {
            23     int ret = 10000;
            24     int tmp = 0;
            25     for (int i = 0; i != n; ++i)
            26     {
            27         for (int j = 0; j != n; ++j)
            28         {
            29             for (int k = 0; k != n; ++k)
            30             {
            31                 tmp = bar(a, n, i, j, k);
            32                 if (tmp < ret)
            33                 {
            34                     ret = tmp;
            35                     p1 = i;
            36                     p2 = j;
            37                     p3 = k;
            38                 }
            39                 // cout << i << ' ' << j << ' ' << k << endl;
            40                 // cout << tmp << endl;
            41             }
            42         }
            43     }
            44     return ret;
            45 }
            46 
            47 int    main()
            48 {
            49     int a[] = {045101218273031383947};
            50     int x, y, z;
            51     int d;
            52     d = foo(a, sizeof (a) / sizeof (*a), x, y, z);
            53     cout << d << endl;
            54     cout << x << ' ' << y << ' ' << z << endl;
            55     return 0;
            56 }

             


            posted on 2011-07-26 11:43 unixfy 閱讀(363) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久久精品国产亚洲成人满18免费网站 | 色偷偷偷久久伊人大杳蕉| 青青草原综合久久大伊人导航| 激情五月综合综合久久69| 蜜桃麻豆www久久国产精品| 亚洲中文字幕无码久久2017| 国产精品美女久久久久网| 国内精品久久久久国产盗摄| 欧美精品国产综合久久| 久久国产乱子伦精品免费强| 一级女性全黄久久生活片免费| 日本人妻丰满熟妇久久久久久| 大美女久久久久久j久久| 中文成人久久久久影院免费观看| 欧美一区二区三区久久综合| 久久毛片免费看一区二区三区| 伊人久久精品无码av一区| 久久精品国产WWW456C0M| 国产精品久久久亚洲| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 久久国产精品-国产精品| 人妻无码精品久久亚瑟影视 | 国产成人久久AV免费| 综合久久久久久中文字幕亚洲国产国产综合一区首| 久久精品国产精品亚洲精品| 日本免费久久久久久久网站| 亚洲精品无码久久一线| 无码乱码观看精品久久| 久久高潮一级毛片免费| 日韩欧美亚洲综合久久影院d3| 久久久无码人妻精品无码| 婷婷久久香蕉五月综合加勒比| 久久精品卫校国产小美女| 伊人久久亚洲综合影院| 久久精品国产WWW456C0M| 久久一区二区三区免费| 久久亚洲AV无码西西人体| 狠狠精品干练久久久无码中文字幕| 久久精品一区二区国产| 久久99国产精品久久| 久久99免费视频|