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

            superman

            聚精會神搞建設 一心一意謀發展
            posts - 190, comments - 17, trackbacks - 0, articles - 0
               :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            Section 2.4 - Cow Tours

            Posted on 2009-04-23 16:02 superman 閱讀(218) 評論(0)  編輯 收藏 引用 所屬分類: USACO
              1 #include <cmath>
              2 #include <iostream>
              3 
              4 using namespace std;
              5 
              6 struct Point
              7 {
              8     int x, y;
              9 }   ;
             10 
             11 int sqr(int n)
             12 {
             13     return n * n;
             14 }
             15 
             16 int n;
             17 Point p[150];
             18 bool adj[150][150];
             19 double dist[150][150];
             20 
             21 int subGraphCnt;
             22 
             23 int visited[150];
             24 void dfs(int p)
             25 {
             26     visited[p] = subGraphCnt;
             27     for (int i = 0; i < n; i++)
             28         if (adj[p][i] == true && visited[i] == false)
             29             dfs(i);
             30 }
             31 
             32 int main()
             33 {
             34     freopen("cowtour.in""r", stdin);
             35     freopen("cowtour.out""w", stdout);
             36 
             37     cin >> n;
             38     for (int i = 0; i < n; i++)
             39         cin >> p[i].x >> p[i].y;
             40 
             41     cin.get();
             42     for (int i = 0; i < n; i++)
             43     {
             44         for (int j = 0; j < n; j++)
             45         {
             46             char c;
             47             c = cin.get();
             48             adj[i][j] = c - '0';
             49         }
             50         cin.get();
             51     }
             52 
             53     for (int i = 0; i < n; i++)
             54         for (int j = i + 1; j < n; j++)
             55             if (adj[i][j])
             56             {
             57                 int tmp = sqr(p[i].x - p[j].x) + sqr(p[i].y - p[j].y);
             58                 dist[i][j] = dist[j][i] = sqrt(tmp);
             59             }
             60             else
             61                 dist[i][j] = dist[j][i] = INT_MAX;
             62 
             63     for (int k = 0; k < n; k++)
             64     for (int i = 0; i < n; i++)
             65     for (int j = 0; j < n; j++)
             66         if (dist[i][k] != INT_MAX && dist[k][j] != INT_MAX)
             67             dist[i][j] <?= (dist[i][k] + dist[k][j]);
             68 
             69     for (int i = 0; i < n; i++)
             70         if (visited[i] == 0)
             71         {
             72             subGraphCnt++;
             73             dfs(i);
             74         }
             75 
             76     double x[150= { 0 };
             77     for (int i = 0; i < n; i++)
             78     for (int j = 0; j < n; j++)
             79         if (dist[i][j] != INT_MAX)
             80             x[i] >?= dist[i][j];
             81 
             82     double ans = INT_MAX;
             83     for (int i = 0; i < n; i++)
             84     for (int j = 0; j < n; j++)
             85         if (visited[i] != visited[j])
             86         {
             87             double tmp = sqrt(sqr(p[i].x - p[j].x) + sqr(p[i].y - p[j].y));
             88             tmp += (x[i] + x[j]);
             89             ans <?= tmp;
             90         }
             91     for (int i = 0; i < n; i++)
             92         ans >?= x[i];
             93 
             94     cout.setf(ios_base::showpoint);
             95     cout.setf(ios_base::fixed);
             96     cout.precision(6);
             97     cout << ans << endl;
             98 
             99     return 0;
            100 }
            101 
            久久精品国产99国产精偷 | 婷婷久久综合九色综合98| 亚洲AV无一区二区三区久久| 久久青青草原精品国产| 国产一区二区精品久久岳| 亚洲中文久久精品无码| 女人香蕉久久**毛片精品| 偷偷做久久久久网站| 色综合色天天久久婷婷基地| 亚洲中文久久精品无码| 久久影视综合亚洲| 狠狠狠色丁香婷婷综合久久五月| 中文字幕久久亚洲一区| 久久91这里精品国产2020| 老色鬼久久亚洲AV综合| 精品一二三区久久aaa片| 国产亚洲精久久久久久无码AV| 99久久无色码中文字幕| 久久综合给久久狠狠97色| 久久受www免费人成_看片中文| 国产A级毛片久久久精品毛片| 精品久久久久中文字幕日本 | 狠狠色婷婷久久一区二区三区| 欧美成人免费观看久久| 欧美粉嫩小泬久久久久久久 | 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久成人国产精品二三区| 亚洲av伊人久久综合密臀性色| 亚洲国产精品无码久久久久久曰| 狠狠人妻久久久久久综合蜜桃| 成人a毛片久久免费播放| 久久精品一区二区三区不卡| 国产一久久香蕉国产线看观看| 久久91精品国产91久久小草 | 久久综合精品国产一区二区三区| 国产精久久一区二区三区| 精品久久久久国产免费| 久久精品国产亚洲Aⅴ香蕉| 色婷婷久久久SWAG精品| 久久国产劲爆AV内射—百度| 伊人久久大香线蕉av不变影院|