<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      書(shū)山有徑勤為路>>>>>>>>

      <<<<<<<<學(xué)海無(wú)涯苦作舟!

      Kruskal算法解決POJ 1861

      題目:http://poj.org/problem?id=1861

      
      

      說(shuō)下題意,給出節(jié)點(diǎn)個(gè)數(shù)m和邊數(shù)n,下面n行給出邊(x,y)以及權(quán)值w。

      輸出第一行為最小生成樹(shù)中的最大邊權(quán)值,第二行為一個(gè)可行生成樹(shù)方案的邊數(shù)k,

      下面k行為可行生成樹(shù)的k條邊。

      題目是Special Judge,意思就是不具有唯一解,可能有多解,

      樣例輸出為以下結(jié)果也可算對(duì)。

      1
      3
      1 3
      2 4
      2 3

      一樣按照Kruskal解題即可,結(jié)果雖然不唯一,但是最小生成樹(shù)一定是可行解之一。

      將邊加入生成樹(shù)時(shí)記錄最大權(quán)值和邊信息然后輸出即可。

       

      View Code
      #include "iostream"
      #include "algorithm"
      using namespace std;
      structline
      {
          int begin;
          int end;
          int length;
      };
      line Num[15001];
      line Store[15001];
      int father[1001], map[1001][1001], i, j, numofline, numofnode, counter;
      int find(int k)
      {
          return father[k]==k?k:father[k]=find(father[k]);
      }
      int cmp(line a, line b)
      {
          return a.length<b.length;
      }
      void kruskal()
      {
          counter = 0;
          int a, b, c, d, l;
          for(i=0; i<numofline; i++)
          {
                      c = Num[i].begin;  //記錄改變前的begin結(jié)點(diǎn)
              d = Num[i].end;  //記錄改變前的edc結(jié)點(diǎn)
              l = Num[i].length;  //記錄改變前的length結(jié)點(diǎn)
              a = find(Num[i].begin);  
              b = find(Num[i].end);
              if(a!=b)
              {
                  Store[counter].length = l;  //存儲(chǔ)length
                  Store[counter].begin = c;  //存儲(chǔ)begin
                  Store[counter++].end = d;  //存儲(chǔ)end
                  father[a] = b;
              }
      
                      //然而,我發(fā)現(xiàn)沒(méi)有必要去記錄改變前的begin,end,length等的值,
      
                      //因?yàn)?,它們從?lái)都沒(méi)有改變過(guò),改變的只是對(duì)應(yīng)的father中的值。
      
                      //對(duì)于,這個(gè)的糾正就是說(shuō)明我更加理解了并查集了。
          }
      }
      void Init()
      {
          cin>>numofnode>>numofline;
          for(i=1; i<=numofnode; i++)
              father[i] = i;
          for(i=0; i<numofline; i++)
              cin>>Num[i].begin>>Num[i].end>>Num[i].length;
          sort(Num, Num+numofline, cmp);
      }
      int main()
      {
          Init();
          kruskal();
          cout<<Store[counter-1].length<<endl;
          cout<<counter<<endl;
          for(i=0; i<counter; i++)
              cout<<Store[i].begin<<" "<<Store[i].end<<endl;
      }

       

       
       

      posted on 2011-09-23 22:17  More study needed.  閱讀(289)  評(píng)論(0)    收藏  舉報(bào)

      導(dǎo)航

      書(shū)山有徑勤為路>>>>>>>>

      <<<<<<<<學(xué)海無(wú)涯苦作舟!

      主站蜘蛛池模板: 国产AV巨作丝袜秘书| 免费无码黄网站在线观看| 亚洲av不卡电影在线网址最新| 日韩有码中文字幕国产| 中文国产日韩欧美二视频| 久久99精品久久水蜜桃| 久久国产精品无码网站| 天干天干啦夜天干天2017| 亚洲成人av综合一区| 高中生粉嫩无套第一次| 国产亚洲精品日韩av在| 成人一区二区三区激情视频| 久久精品国产亚洲AV瑜伽| 亚洲中文字幕无码爆乳APP| 99久久国产宗和精品1上映| 一区二区三区不卡国产| 一区二区三区在线色视频| 亚洲中文字幕综合网在线| 亚洲AV成人无码久久精品四虎| 亚洲色大成网站WWW永久麻豆| 亚洲一区二区三区在线播放无码 | 日韩激情成人| 公天天吃我奶躁我的在线观看| 国产乱妇乱子视频在播放| 制服丝袜美腿一区二区| 南充市| 国产不卡一区二区在线| 日韩精品一区二区三区vr| 蜜臀av久久国产午夜| 中文字幕精品亚洲无线码二区| 国产精品激情av在线播放| 成人免费乱码大片a毛片| 欧美丰满熟妇xxxx性ppx人交| 欧美人与动人物牲交免费观看| 久久精品一本到99热免费| 久热色视频精品在线观看| 国产精品蜜臀av在线一区| 人人妻人人澡人人爽欧美一区双| 亚洲国产欧美在线人成AAAA| 99精品国产一区二区三区| 国产午夜福利短视频|