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

            HDU 1102 Constructing Roads

            HDU 1102 Constructing Roads

            這個(gè)題目的意思就是說,給你一個(gè)有n個(gè)村莊的地圖,map[i][j]表示從村莊 i 到村莊 j 的距離,然后給你
            m 條已有道路,讓你在這個(gè)基礎(chǔ)上添加適當(dāng)?shù)牡缆罚沟盟写迩f之間都是聯(lián)通的,求添加道路的最短距
            離的值。 典型的最小生成樹算法的運(yùn)用。
             1 #include<stdio.h>
             2 #include<stdlib.h>
             3 #include<string.h>
             4 
             5 const int MAX = 0x7fffffff
             6 int map[101][101], v[101], x, y, n, sum, flag, min;
             7 
             8 void Reset(int n)
             9 {//根據(jù) 規(guī)模  n 的大小  ,建立 map! 
            10      for (int i=0; i<n; i++)
            11      {
            12          for (int j=0; j<n; j++)
            13          {
            14              scanf("%d"&map[i][j]);
            15              if (i == j)map[i][j] = 0;
            16          }
            17      }
            18      int m;
            19      scanf("%d"&m);
            20      for (int i=0; i<m; i++)
            21      {
            22          scanf("%d %d"&x, &y);
            23          map[x-1][y-1= map[y-1][x-1= 0;
            24      }
            25 }
            26 void MinTree()
            27 {// 最小生成樹算法 
            28      memset(v, 0sizeof(v));
            29      v[0= 1;
            30      sum = 0;
            31      for (int i=1; i<n; i++)
            32      {
            33          min = MAX;
            34          for (int j=0; j<n; j++)
            35          {
            36              if (!v[j] && map[0][j] < min) 
            37              {
            38                 min = map[0][j], flag = j;
            39              }
            40          }
            41          v[flag] = 1;
            42          sum += min;
            43          for (int j=0; j<n; j++)
            44          {
            45              if (!v[j] && map[0][j] > map[flag][j])
            46              {
            47                 map[0][j] = map[flag][j];
            48              }
            49          }
            50      }
            51      printf("%d\n", sum);
            52 }
            53 
            54 int main()
            55 {
            56     while (scanf("%d"&n) != EOF)
            57     {
            58           Reset(n);
            59           MinTree();
            60     }
            61     return 0;
            62 }





            posted on 2011-07-18 08:34 AK 閱讀(1588) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 最小生成樹和并查集

            <2011年7月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            資源連接

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            国产精品久久永久免费| 青青热久久国产久精品 | 亚洲精品乱码久久久久66| 久久综合久久自在自线精品自| 久久久噜噜噜久久中文福利| 久久青青草原国产精品免费| 无码人妻少妇久久中文字幕| 久久精品麻豆日日躁夜夜躁| 精品久久久久久久久久中文字幕| 模特私拍国产精品久久| 久久福利青草精品资源站免费| 亚洲伊人久久成综合人影院| 91精品国产高清91久久久久久| 亚洲欧美久久久久9999| 久久精品国产秦先生| 国内精品久久久久影院薰衣草 | 日韩精品久久无码中文字幕| 精品久久久久久无码国产| 久久99热只有频精品8| 午夜精品久久久久久影视777| 久久福利青草精品资源站| 久久妇女高潮几次MBA| 久久人人爽人人爽人人片AV麻豆 | 伊人久久大香线蕉综合网站| 国内精品久久久人妻中文字幕| 久久久久亚洲AV成人网人人网站| 久久九九久精品国产| 国产叼嘿久久精品久久| 久久精品国产91久久麻豆自制| 人妻无码中文久久久久专区| 无码人妻精品一区二区三区久久久| 亚洲欧美国产日韩综合久久| 久久这里有精品视频| 武侠古典久久婷婷狼人伊人| 久久狠狠一本精品综合网| 精品99久久aaa一级毛片| A级毛片无码久久精品免费| 国内精品久久久久国产盗摄| 国产真实乱对白精彩久久| 久久久久综合国产欧美一区二区| 国产精品免费久久久久久久久|