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

            misschuer

            常用鏈接

            統(tǒng)計(jì)

            積分與排名

            百事通

            最新評(píng)論

            旅行商簡(jiǎn)化版

             1#include <iostream>
             2#include <cmath>
             3#include <algorithm>
             4using namespace std;
             5
             6struct node
             7{
             8    double x;
             9    double y;
            10}

            11
            12double dist(node a , node b)
            13{
            14    return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
            15}

            16
            17bool comp(node a , node b)
            18{
            19    return a.x < b.x;
            20}

            21
            22double dp[ 1001 ][ 1001 ] , temp;
            23node q[ 1001 ];
            24
            25int main()
            26{    
            27    int n , i , j , k;
            28    dp[ 1 ][ 1 ] = 0
            29    
            30    cin >> n;
            31       
            32       for (i = 1 ; i <= n  ; ++ i)
            33           cin >> q[ i ].x >> q[ i ].y;
            34       
            35       sort (q + 1 , q + n + 1 , comp);
            36       
            37       for (i = 2 ; i <= n ; ++ i)
            38           dp[ i ][ 1 ] = dp[i - 1][ 1 ] + dist(q[ i ] , q[i - 1]);
            39             
            40       for (i = 3 ; i <= n ; ++ i)
            41           for (j = 2 ; j < i ; ++ j)
            42           {
            43               if (i == j)
            44               {
            45                   dp[ i ][ j ] = dp[ i ][i - 1+ dist(q[ i ] , q[i - 1]);
            46                   continue;
            47               }

            48               
            49               if (i > j + 1)
            50               {
            51                   dp[ i ][ j ] = dp[i - 1][ j ] + dist(q[ i ] , q[i - 1]);     
            52                   continue;
            53               }

            54               
            55               if (i == j + 1)
            56                   for (k = 1 ; k < j ; ++ k)
            57                   {
            58                       if (k == 1)
            59                       {
            60                           dp[ i ][ j ] =  dp[ j ][ k ] + dist(q[ i ] , q[ k ]);
            61                           continue;
            62                       }

            63                       temp = dp[ j ][ k ] + dist(q[ i ] , q[ k ]);
            64                       if (temp < dp[ i ][ j ])
            65                           dp[ i ][ j ] = temp;
            66                   }

            67           }

            68           dp[ n ][ n ] = dp[ n ][n - 1+ dist(q[n - 1] , q[ n ]);
            69           printf ("%.2f\n" , dp[ n ][ n ]);
            70           return 0;
            71}

            posted on 2009-04-28 18:01 此最相思 閱讀(275) 評(píng)論(0)  編輯 收藏 引用


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


            久久精品人人做人人妻人人玩| 亚洲乱亚洲乱淫久久| 久久久黄色大片| 中文字幕无码免费久久| 久久精品99久久香蕉国产色戒| 久久精品中文无码资源站| 国内精品久久久久久久久电影网 | 久久妇女高潮几次MBA| 91精品国产色综久久| 久久午夜免费视频| 久久精品无码一区二区三区| 蜜臀av性久久久久蜜臀aⅴ麻豆| 性高湖久久久久久久久AAAAA| 国内精品久久久久久不卡影院| 久久九九兔免费精品6| 99久久精品免费| 99久久精品费精品国产一区二区| 精品国产青草久久久久福利| 伊人热人久久中文字幕| 亚洲国产精品无码久久| 久久精品一区二区三区AV| 国产精品九九久久免费视频| 久久亚洲精品中文字幕三区| 亚洲国产精品久久久久婷婷老年| 99久久综合国产精品免费| 久久久一本精品99久久精品88| 国产精品免费看久久久香蕉| 久久久婷婷五月亚洲97号色| 精品国产乱码久久久久久人妻| 色播久久人人爽人人爽人人片aV| 国产成人精品久久综合| 亚洲国产天堂久久综合网站| 国产精品久久久久影视不卡| 人妻精品久久久久中文字幕69 | 久久精品www| 国产精品一区二区久久不卡| 国内精品久久久久| 精品一区二区久久久久久久网站| 久久精品国产亚洲av影院| 色妞色综合久久夜夜| 久久国产乱子伦免费精品|