锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲中文字幕无码久久综合网,久久亚洲国产午夜精品理论片,欧美亚洲另类久久综合婷婷http://www.shnenglu.com/MiYu/category/14427.html ______________鐧界櫧銇眿zh-cnSun, 24 Oct 2010 13:01:15 GMTSun, 24 Oct 2010 13:01:15 GMT60Bellman-Ford && SPFA 綆楁硶http://www.shnenglu.com/MiYu/archive/2010/10/23/131018.htmlMiYuMiYuSat, 23 Oct 2010 14:09:00 GMThttp://www.shnenglu.com/MiYu/archive/2010/10/23/131018.htmlhttp://www.shnenglu.com/MiYu/comments/131018.htmlhttp://www.shnenglu.com/MiYu/archive/2010/10/23/131018.html#Feedback0http://www.shnenglu.com/MiYu/comments/commentRss/131018.htmlhttp://www.shnenglu.com/MiYu/services/trackbacks/131018.htmlMiYu鍘熷垱, 杞笘璇鋒敞鏄?: 杞澆鑷?nbsp;______________鐧界櫧銇眿    

 

 B-F 

閫傜敤鏉′歡&鑼冨洿

  1. 鍗曟簮鏈鐭礬寰?浠庢簮鐐箂鍒板叾瀹冩墍鏈夐《鐐箆);
  2. 鏈夊悜鍥?amp;鏃犲悜鍥?鏃犲悜鍥懼彲浠ョ湅浣?u,v),(v,u)鍚屽睘浜庤竟闆咵鐨勬湁鍚戝浘);
  3. 杈規(guī)潈鍙鍙礋(濡傛湁璐熸潈鍥炶礬杈撳嚭閿欒鎻愮ず);
  4. 宸垎綰︽潫緋葷粺;

綆楁硶鎻忚堪

  1. 瀵規(guī)瘡鏉¤竟榪涜|V|-1嬈elax ( 灝辨槸鏉懼紱鎿嶄綔 )鎿嶄綔;
  2. 濡傛灉瀛樺湪(u,v)∈E浣垮緱dis[u]+w<dis[v],鍒欏瓨鍦ㄨ礋鏉冨洖璺?鍚﹀垯dis[v]鍗充負(fù)s鍒皏鐨勬渶鐭窛紱?pre[v]涓哄墠椹便?/li>
For i:=1 to |V|-1 do //v涓洪《鐐規(guī)暟
For 姣忔潯杈?u,v)∈E do  //瀵規(guī)瘡鏉¤竟榪涜閬嶅巻
  Relax(u,v,w);
For姣忔潯杈?u,v)∈E do
  If dis[u]+w<dis[v] Then Exit(False)

鏃剁┖澶嶆潅搴?/span>

綆楁硶鏃墮棿澶嶆潅搴(VE)銆傚洜涓虹畻娉曠畝鍗曪紝閫傜敤鑼冨洿鍙堝箍錛岃櫧鐒跺鏉傚害紼嶉珮錛屼粛涓嶅け涓轟竴涓緢瀹炵敤鐨勭畻娉曘?/p>

 

綆楁硶鐨勬敼榪?--> SPFA 

 

綆楁硶綆浠?/span>

SPFA(Shortest Path Faster Algorithm)鏄?a title="Bellman-Ford綆楁硶" style="text-decoration: none; color: rgb(90, 54, 150); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; ">Bellman-Ford綆楁硶鐨勪竴縐?a title="闃熷垪" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; ">闃熷垪瀹炵幇錛屽噺灝戜簡(jiǎn)涓嶅繀瑕佺殑鍐椾綑璁$畻銆備篃鏈変漢璇碨PFA鏈潵灝辨槸Bellman-Ford綆楁硶錛岀幇鍦ㄥ箍涓烘祦浼犵殑Bellman-Ford綆楁硶瀹為檯涓婃槸灞卞鐗堛?/p>

綆楁硶嫻佺▼

綆楁硶澶ц嚧嫻佺▼鏄敤涓涓槦鍒楁潵榪涜緇存姢銆?鍒濆鏃跺皢婧愬姞鍏ラ槦鍒椼?姣忔浠庨槦鍒椾腑鍙栧嚭涓涓厓绱狅紝騫跺鎵鏈変笌浠栫浉閭?cè)潥勭偣杩涜?a title="鏉懼紱" style="text-decoration: none; color: rgb(0, 43, 184); background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; ">鏉懼紱錛岃嫢鏌愪釜鐩擱偦鐨勭偣鏉懼紱鎴愬姛錛屽垯灝嗗叾鍏ラ槦銆?鐩村埌闃熷垪涓虹┖鏃剁畻娉曠粨鏉熴?/p>

榪欎釜綆楁硶錛岀畝鍗曠殑璇村氨鏄槦鍒椾紭鍖栫殑bellman-ford,鍒╃敤浜?jiǎn)姣忎釜鐐逛笉浼?xì)鏇存柊嬈℃暟澶鐨勭壒鐐瑰彂鏄庣殑姝ょ畻娉?/p>

SPFA鈥斺擲hortest Path Faster Algorithm錛屽畠鍙互鍦∣(kE)鐨勬椂闂村鏉傚害鍐呮眰鍑烘簮鐐瑰埌鍏朵粬鎵鏈夌偣鐨勬渶鐭礬寰勶紝鍙互澶勭悊璐熻竟銆係PFA鐨勫疄鐜扮敋鑷蟲(chóng)瘮Dijkstra鎴栬匓ellman_Ford榪樿綆鍗曪細(xì)

璁綝ist浠h〃S鍒癐鐐圭殑褰撳墠鏈鐭窛紱伙紝Fa浠h〃S鍒癐鐨勫綋鍓嶆渶鐭礬寰勪腑I鐐逛箣鍓嶇殑涓涓偣鐨勭紪鍙楓傚紑濮嬫椂Dist鍏ㄩ儴涓?∞錛屽彧鏈塂ist[S]=0錛孎a鍏ㄩ儴涓?銆?/p>

緇存姢涓涓槦鍒楋紝閲岄潰瀛樻斁鎵鏈夐渶瑕佽繘琛岃凱浠g殑鐐廣傚垵濮嬫椂闃熷垪涓彧鏈変竴涓偣S銆傜敤涓涓竷?yōu)當(dāng)鏁熬l勮褰曟瘡涓偣鏄惁澶勫湪闃熷垪涓?/p>

姣忔榪唬錛屽彇鍑洪槦澶寸殑鐐箆錛屼緷嬈℃灇涓句粠v鍑哄彂鐨勮竟v->u錛岃杈圭殑闀垮害涓簂en錛屽垽鏂璂ist[v]+len鏄惁灝忎簬Dist[u]錛岃嫢灝忎簬鍒欐敼榪汥ist[u]錛屽皢Fa[u]璁頒負(fù)v錛屽茍涓旂敱浜嶴鍒皍鐨勬渶鐭窛紱誨彉灝忎簡(jiǎn)錛屾湁鍙兘u鍙互鏀硅繘鍏跺畠鐨勭偣錛屾墍浠ヨ嫢u涓嶅湪闃熷垪涓紝灝卞皢瀹冩斁鍏ラ槦灝俱傝繖鏍蜂竴鐩磋凱浠d笅鍘葷洿鍒伴槦鍒楀彉絀猴紝涔熷氨鏄疭鍒版墍鏈夌殑鏈鐭窛紱婚兘紜畾涓嬫潵錛岀粨鏉熺畻娉曘傝嫢涓涓偣鍏ラ槦嬈℃暟瓚呰繃n錛屽垯鏈夎礋鏉冪幆銆?/p>

SPFA 鍦ㄥ艦寮忎笂鍜屽搴︿紭鍏堟悳绱㈤潪甯哥被浼鹼紝涓嶅悓鐨勬槸瀹藉害浼樺厛鎼滅儲(chǔ)涓竴涓偣鍑轟簡(jiǎn)闃熷垪灝變笉鍙兘閲嶆柊榪涘叆闃熷垪錛屼絾鏄疭PFA涓竴涓偣鍙兘鍦ㄥ嚭闃熷垪涔嬪悗鍐嶆琚斁鍏ラ槦鍒楋紝涔熷氨鏄竴涓偣鏀硅繘榪囧叾瀹冪殑鐐逛箣鍚庯紝榪囦簡(jiǎn)涓孌墊椂闂村彲鑳芥湰韜鏀硅繘錛屼簬鏄啀嬈$敤鏉ユ敼榪涘叾瀹冪殑鐐癸紝榪欐牱鍙嶅榪唬涓嬪幓銆傝涓涓偣鐢ㄦ潵浣滀負(fù)榪唬鐐瑰鍏跺畠鐐硅繘琛屾敼榪涚殑騫沖潎嬈℃暟涓簁錛屾湁鍔炴硶璇佹槑瀵逛簬閫氬父鐨勬儏鍐碉紝k鍦?宸﹀彸

綆楁硶浠g爜

Procedure SPFA;
 
Begin
  initialize-single-source(G,s);
  initialize-queue(Q);
  enqueue(Q,s);
  while not empty(Q) do 
    begin
      u:=dequeue(Q);
      for each v∈adj[u] do 
        begin
          tmp:=d[v];
          relax(u,v);
          if (tmp<>d[v]) and (not v in Q) then
            enqueue(Q,v);
        end;
    end;
End;


procedure spfa;
begin
  fillchar(q,sizeof(q),0); h:=0; t:=0;//闃熷垪
  fillchar(v,sizeof(v),false);//v[i]鍒ゆ柇i鏄惁鍦ㄩ槦鍒椾腑
  for i:=1 to n do 
    dist[i]:=maxint;//鍒濆鍖栨渶灝忓?/span>
 
  inc(t);
  q[t]:=1;
  v[1]:=true;
  dist[1]:=0;//榪欓噷鎶?浣滀負(fù)婧愮偣
 
  while h<>t do
    begin
      h:=(h mod n)+1;
      x:=q[h];
      v[x]:=false;
      for i:=1 to n do
        if (cost[x,i]>0) and (dist[x]+cost[x,i]<dist[i]) then
          begin
            dist[i]:=dist[x]+cost[x,i];
            if not(v[i]) then
              begin
                t:=(t mod n)+1;
                q[t]:=i;
                v[i]:=true;
              end;
          end;
    end;
end;
void SPFA(void)//濂戒箙浠ュ墠鍐欑殑……浠婂ぉ涓笂鏉?#8230;…璇濊鎴戦兘涓嶈寰桽PFA鎬庝箞鍐欎簡(jiǎn)……鍥?#8230;…ms瀛樺浘鏄煩闃?#8230;…鍡棷
{
 int i;
 queue list;
 list.insert(s);
 for(i=1;i<=n;i++)
  {
   if(s==i)
    continue;
   dist[i]=map[s][i];
   way[i]=s;
   if(dist[i])
   list.insert(i);
  }
 int p;
 while(!list.empty())
 {
  p=list.fire();
  for(i=1;i<=n;i++)
   if(map[p][i]&&(dist[i]>dist[p]+map[p][i]||!dist[i])&&i!=s)
    {
     dist[i]=dist[p]+map[p][i];
     way[i]=p;
     if(!list.in(i))
      list.insert(i);
    }
 }
} 

 



MiYu 2010-10-23 22:09 鍙戣〃璇勮
]]>
鍓嶅悜鏄?SPFA(杞澆)http://www.shnenglu.com/MiYu/archive/2010/10/23/131014.htmlMiYuMiYuSat, 23 Oct 2010 14:02:00 GMThttp://www.shnenglu.com/MiYu/archive/2010/10/23/131014.htmlhttp://www.shnenglu.com/MiYu/comments/131014.htmlhttp://www.shnenglu.com/MiYu/archive/2010/10/23/131014.html#Feedback0http://www.shnenglu.com/MiYu/comments/commentRss/131014.htmlhttp://www.shnenglu.com/MiYu/services/trackbacks/131014.htmlMiYu鍘熷垱, 杞笘璇鋒敞鏄?: 杞澆鑷?nbsp;______________鐧界櫧銇眿    

 

浠g爜
鍓嶅悜鏄?/span>+SPFA
鎴戞槸鍦ㄥ仛USACO鐨剆weet butter鏃跺伓鐒跺彂鐜拌繖涓笢瑗跨殑銆傘傘?br>榪欎釜綆楁硶錛岀畝鍗曠殑璇村氨鏄槦鍒椾紭鍖栫殑bellman
-ford,鍒╃敤浜?jiǎn)姣忎釜鐐逛笉浼?xì)鏇存柊嬈℃暟澶鐨勭壒鐐瑰彂鏄庣殑姝ょ畻娉曪紙浠呬負(fù)涓漢鐞嗚В=.=錛?br>SPFA鈥斺擲hortest Path Faster Algorithm錛屽畠鍙互鍦∣(kE)鐨勬椂闂村鏉傚害鍐呮眰鍑烘簮鐐瑰埌鍏朵粬鎵鏈夌偣鐨勬渶鐭礬寰勶紝鍙互澶勭悊璐熻竟銆係PFA鐨勫疄鐜扮敋鑷蟲(chóng)瘮Dijkstra鎴栬匓ellman_Ford榪樿綆鍗曪細(xì)
璁綝ist浠h〃S鍒癐鐐圭殑褰撳墠鏈鐭窛紱伙紝Fa浠h〃S鍒癐鐨勫綋鍓嶆渶鐭礬寰勪腑I鐐逛箣鍓嶇殑涓涓偣鐨勭紪鍙楓傚紑濮嬫椂Dist鍏ㄩ儴涓?/span>+∞錛屽彧鏈塂ist[S]=0錛孎a鍏ㄩ儴涓?銆?br>緇存姢涓涓槦鍒楋紝閲岄潰瀛樻斁鎵鏈夐渶瑕佽繘琛岃凱浠g殑鐐廣傚垵濮嬫椂闃熷垪涓彧鏈変竴涓偣S銆傜敤涓涓竷?yōu)當(dāng)鏁熬l勮褰曟瘡涓偣鏄惁澶勫湪闃熷垪涓?br>姣忔榪唬錛屽彇鍑洪槦澶寸殑鐐箆錛屼緷嬈℃灇涓句粠v鍑哄彂鐨勮竟v->u錛岃杈圭殑闀垮害涓簂en錛屽垽鏂璂ist[v]+len鏄惁灝忎簬Dist錛岃嫢灝忎簬鍒欐敼榪汥ist錛屽皢Fa璁頒負(fù)v錛屽茍涓旂敱浜嶴鍒皍鐨勬渶鐭窛紱誨彉灝忎簡(jiǎn)錛屾湁鍙兘u鍙互鏀硅繘鍏跺畠鐨勭偣錛屾墍浠ヨ嫢u涓嶅湪闃熷垪涓紝灝卞皢瀹冩斁鍏ラ槦灝俱傝繖鏍蜂竴鐩磋凱浠d笅鍘葷洿鍒伴槦鍒楀彉絀猴紝涔熷氨鏄疭鍒版墍鏈夌殑鏈鐭窛紱婚兘紜畾涓嬫潵錛岀粨鏉熺畻娉曘?br>SPFA 鍦ㄥ艦寮忎笂鍜屽搴︿紭鍏堟悳绱㈤潪甯哥被浼鹼紝涓嶅悓鐨勬槸瀹藉害浼樺厛鎼滅儲(chǔ)涓竴涓偣鍑轟簡(jiǎn)闃熷垪灝變笉鍙兘閲嶆柊榪涘叆闃熷垪錛屼絾鏄疭PFA涓竴涓偣鍙兘鍦ㄥ嚭闃熷垪涔嬪悗鍐嶆琚斁鍏ラ槦鍒楋紝涔熷氨鏄竴涓偣鏀硅繘榪囧叾瀹冪殑鐐逛箣鍚庯紝榪囦簡(jiǎn)涓孌墊椂闂村彲鑳芥湰韜鏀硅繘錛屼簬鏄啀嬈$敤鏉ユ敼榪涘叾瀹冪殑鐐癸紝榪欐牱鍙嶅榪唬涓嬪幓銆傝涓涓偣鐢ㄦ潵浣滀負(fù)榪唬鐐瑰鍏跺畠鐐硅繘琛屾敼榪涚殑騫沖潎嬈℃暟涓簁錛屾湁鍔炴硶璇佹槑瀵逛簬閫氬父鐨勬儏鍐碉紝k鍦?宸﹀彸
鍓嶅悜鏄熶紭鍖栵細(xì)
涓嶈鎶婂墠鍚戞槦鎯蟲(chóng)垚浠涔堥珮娣辮帿嫻嬬殑涓滆タ……瀹冨叾瀹炲氨鏄竴縐嶉偦鎺ヨ〃鐨勭揣緙╁瓨鍌ㄥ艦寮忋?br>涓轟粈涔堝彨鍓嶅悜鏄燂紵鍥犱負(fù)瀹冩槸灝嗚竟鎸夌収鍓嶇鐐規(guī)帓搴忥紝騫剁敤涓涓暟緇刱[i]璁板綍绔偣i絎竴嬈′互宸︾鐐瑰嚭鐜扮殑浣嶇疆銆傝繖鏍鳳紝鎴戜滑灝辮兘鐢∣(E)鐨勭┖闂村鏉傚害瀛樺偍涓嬩竴涓偦鎺ヨ〃錛岃岄伩鍏嶄簡(jiǎn)閾捐〃鎴朜
^2鐨勫簽澶х┖闂存秷鑰椼?br>褰撶劧錛屽疄闄呬笂鎴戜滑騫朵笉闇瑕佹帓搴忥細(xì)鍥犱負(fù)鎴戜滑鍙渶瑕佺煡閬撴煇涓鏉¤竟搴旇鏀懼埌浠涔堜綅緗嵆鍙傚洜鑰屾垜浠繕闇瑕佷竴涓暟緇則[i]瀛樺偍浠巌鍑哄彂鐨勮竟鐨勬潯鏁般傚垯闇瑕佸瓨鍌ㄥ湪鐨勪綅緗氨鍙互寰堣交鏄撳湴姹傚緱銆傦紙璇﹁浠g爜錛?br>Butter棰樼洰浠g爜濡備笅錛?br>Program butter(input,output);
Type
   edge
=record
            x,y,d:longint;
        end;
Var
   min,res,n,p,c,x,y,i,j,l,r:longint;
   te,e:array[
0..3000] of edge;
   tk,t,k,num,d:array[
1..800] of longint;
   q:array[
1..100000] of longint;
   use:array[
1..800] of boolean;
Procedure swap(var n1,n2:longint);
Var
   tmp:longint;
Begin
   tmp:
=n1;n1:=n2;n2:=tmp;
End;
Begin
   assign(input,
'butter.in');reset(input);
   readln(n,p,c);
   
for i:=1 to n do
   begin
      read(x);
      inc(num[x]);
   end;
   
for i:=1 to c do
   begin
      with e[i
*2-1do readln(x,y,d);
      e[i
*2]:=e[i*2-1];
      swap(e[i
*2].x,e[i*2].y);
   end;
   c:
=c*2;
   
for i:=1 to c do inc(t[e[i].x]);
   j:
=0;k[1]:=1;
   
for i:=2 to p do
      k[i]:
=k[i-1]+t[i-1];
   tk:
=k;te:=e;
   
for i:=1 to c do
   begin
      e[tk[te[i].x]]:
=te[i];
      inc(tk[te[i].x]);
   end;
   min:
=maxlongint;
   
for i:=1 to p do
   begin
      fillchar(q,
sizeof(q),0);
      fillchar(d,
sizeof(d),127);
      fillchar(use,
sizeof(use),false);
      q[
1]:=i;l:=1;r:=1;d[i]:=0;use[i]:=true;
      repeat
            
for j:=k[q[l]] to k[q[l]]+t[q[l]]-1 do
               
if d[q[l]]+e[j].d<d[e[j].y] then
               begin
                  d[e[j].y]:
=d[q[l]]+e[j].d;
                  
if not use[e[j].y] then
                  begin
                     use[e[j].y]:
=true;
                     inc(r);
                     q[r]:
=e[j].y;
                  end;
               end;
            use[q[l]]:
=false;
            inc(l);
      until l
>r;
      res:
=0;
      
for j:=1 to p do
         res:
=res+d[j]*num[j];
      
if res<min then min:=res;
   end;
   assign(output,
'butter.out');rewrite(output);
   writeln(min);close(output);
End.

 



MiYu 2010-10-23 22:02 鍙戣〃璇勮
]]>
鏉懼紱鎿嶄綔http://www.shnenglu.com/MiYu/archive/2010/10/23/131013.htmlMiYuMiYuSat, 23 Oct 2010 14:01:00 GMThttp://www.shnenglu.com/MiYu/archive/2010/10/23/131013.htmlhttp://www.shnenglu.com/MiYu/comments/131013.htmlhttp://www.shnenglu.com/MiYu/archive/2010/10/23/131013.html#Feedback0http://www.shnenglu.com/MiYu/comments/commentRss/131013.htmlhttp://www.shnenglu.com/MiYu/services/trackbacks/131013.htmlMiYu鍘熷垱, 杞笘璇鋒敞鏄?: 杞澆鑷?nbsp;______________鐧界櫧銇眿    

 

(閲嶅畾鍚戣嚜鏉懼紱鎶鏈?
銆銆鍗曟簮鏈鐭礬寰勭畻娉曚腑浣跨敤浜?jiǎn)鏉惧紱锛坮elaxation錛夋搷浣溿傚浜庢瘡涓《鐐箆∈V錛岄兘璁劇疆涓涓睘鎬[v]錛岀敤鏉ユ弿榪頒粠婧愮偣s鍒皏鐨勬渶鐭礬寰勪笂鏉冨肩殑涓婄晫錛岀О涓烘渶鐭礬寰勪及璁★紙shortest-path estimate錛夈?#960;[v]浠h〃S鍒皏鐨勫綋鍓嶆渶鐭礬寰勪腑v鐐逛箣鍓嶇殑涓涓偣鐨勭紪鍙?鎴戜滑鐢ㄤ笅闈㈢殑Θ(V)鏃墮棿鐨勮繃紼嬫潵瀵規(guī)渶鐭礬寰勪及璁″拰鍓嶈秼榪涜鍒濆鍖栥?div class="spctrl" style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; ">
銆銆INITIALIZE-SINGLE-SOURCE(G,s)
銆銆1 for each vertex v∈V[G]
銆銆2 do d[v]←∞
銆銆3 π[v]←NIL
銆銆4 d[s]←0
銆銆緇忚繃鍒濆鍖栦互鍚庯紝瀵規(guī)墍鏈塿∈V錛?#960;[v]=NIL錛屽v∈V-{s}錛屾湁d[s]=0浠ュ強(qiáng)d[v]=∞銆?div class="spctrl" style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; ">
銆銆鍦ㄦ澗寮涗竴鏉¤竟(u,v)鐨勮繃紼嬩腑錛岃嫻嬭瘯鏄惁鍙互閫氳繃u錛屽榪勪粖鎵懼埌鐨剉鐨勬渶鐭礬寰勮繘琛屾敼榪涳紱濡傛灉鍙互鏀硅繘鐨勮瘽錛屽垯鏇存柊d[v]鍜?#960;[v]銆備竴嬈℃澗寮涙搷浣滃彲浠ュ噺灝忔渶鐭礬寰勪及璁$殑鍊糳[v]錛屽茍鏇存柊v鐨勫墠瓚嬪煙π[v](S鍒皏鐨勫綋鍓嶆渶鐭礬寰勪腑v鐐逛箣鍓嶇殑涓涓偣鐨勭紪鍙?銆備笅闈㈢殑浼唬鐮佸杈?u,v)榪涜浜?jiǎn)涓姝ユ澗寮涙搷浣溿?div class="spctrl" style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; ">銆銆RELAX(u, v, w)
銆銆1 if(d[v]>d[u]+w(u,v))
銆銆2 then d[v]←d[u]+w(u,v)
銆銆3 π[v]←u
銆銆姣忎釜鍗曟簮鏈鐭礬寰勭畻娉曚腑閮戒細(xì)璋冪敤INITIALIZE-SINGLE-SOURCE錛岀劧鍚庨噸澶嶅杈硅繘琛屾澗寮涚殑榪囩▼銆傚彟澶栵紝鏉懼紱鏄敼鍙樻渶鐭礬寰勫拰鍓嶈秼鐨勫敮涓鏂瑰紡銆傚悇涓崟婧愭渶鐭礬寰勭畻娉曢棿鍖哄埆鍦ㄤ簬瀵規(guī)瘡鏉¤竟榪涜鏉懼紱鎿嶄綔鐨勬鏁幫紝浠ュ強(qiáng)瀵硅竟鎵ц鏉懼紱鎿嶄綔鐨勬搴忔湁鎵涓嶅悓銆傚湪Dijkstra綆楁硶浠ュ強(qiáng)鍏充簬鏈夊悜鏃犲洖璺浘鐨勬渶鐭礬寰勭畻娉曚腑錛屽姣忔潯杈規(guī)墽琛屼竴嬈℃澗寮涙搷浣溿傚湪Bellman-Ford綆楁硶涓紝姣忔潯杈硅鎵ц澶氭鏉懼紱鎿嶄綔銆?div class="spctrl" style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; ">銆銆procedure relax(u,v,w:integer);//澶氭暟鎯呭喌涓嬩笉闇瑕佸崟鐙啓鎴恜rocedure銆?div class="spctrl" style="height: 14px; line-height: 14px; font-size: 12px; overflow-x: hidden; overflow-y: hidden; ">銆銆begin
銆銆if dis+w<dis[v] then
銆銆begin
銆銆dis[v]:=dis+w;
銆銆pre[v]:=u;
銆銆end
銆銆end;

 



MiYu 2010-10-23 22:01 鍙戣〃璇勮
]]>
PKU 1258 POJ 1258Agri-Net ( MST Kruskarl 騫舵煡闆?) ACM 1258 IN PKUhttp://www.shnenglu.com/MiYu/archive/2010/10/16/130139.htmlMiYuMiYuSat, 16 Oct 2010 08:30:00 GMThttp://www.shnenglu.com/MiYu/archive/2010/10/16/130139.htmlhttp://www.shnenglu.com/MiYu/comments/130139.htmlhttp://www.shnenglu.com/MiYu/archive/2010/10/16/130139.html#Feedback0http://www.shnenglu.com/MiYu/comments/commentRss/130139.htmlhttp://www.shnenglu.com/MiYu/services/trackbacks/130139.htmlMiYu鍘熷垱, 杞笘璇鋒敞鏄?: 杞澆鑷?nbsp;______________鐧界櫧銇眿    

 

棰樼洰鍦板潃:

http://poj.org/problem?id=1258

棰樼洰鎻忚堪:

Agri-Net
Time Limit: 1000MSMemory Limit: 10000K
Total Submissions: 16557Accepted: 6745

Description

Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. He needs your help, of course. 
Farmer John ordered a high speed connection for his farm and is going to share his connectivity with the other farmers. To minimize cost, he wants to lay the minimum amount of optical fiber to connect his farm to all the other farms. 
Given a list of how much fiber it takes to connect each pair of farms, you must find the minimum amount of fiber needed to connect them all together. Each farm must connect to some other farm such that a packet can flow from any one farm to any other farm. 
The distance between any two farms will not exceed 100,000. 

Input

The input includes several cases. For each case, the first line contains the number of farms, N (3 <= N <= 100). The following lines contain the N x N conectivity matrix, where each element shows the distance from on farm to another. Logically, they are N lines of N space-separated integers. Physically, they are limited in length to 80 characters, so some lines continue onto others. Of course, the diagonal will be 0, since the distance from farm i to itself is not interesting for this problem.

Output

For each case, output a single integer length that is the sum of the minimum length of fiber required to connect the entire set of farms.

Sample Input

4
0 4 9 21
4 0 8 17
9 8 0 16
21 17 16 0

Sample Output

28

棰樼洰鍒嗘瀽 :
 	MST 姘撮, 鐢↘RUSKARL 鎴?PRIM 杞繪澗鑳借繃.
浠g爜濡備笅 :
/*
Mail to   : miyubai@gamil.com
MyBlog    : http://baiyun.me
Link      : http://www.cnblogs.com/MiYu  || http://www.shnenglu.com/MiYu
Author By : MiYu
Test      : 1
Complier  : g++ mingw32-3.4.2
Program   : Agri-Net
Doc Name  : PKU_1258
*/
//#pragma warning( disable:4789 )
#include <iostream>
#include <fstream>
#include <sstream>
#include <algorithm>
#include <string>
#include <set>
#include <map>
#include <utility>
#include <queue>
#include <stack>
#include <list>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
using namespace std;
const int MAX = 105;
int st[105];
int N, x, y, w;
struct vv {
       int x, y, val;
       void set ( int a, int b, int w ) { x=a,y=b,val=w; }

}v[10005];       
bool cmp ( const vv &a, const vv &b ) {
          return a.val < b.val;     
}
void creat () {
     for ( int i = 0; i <= N; ++ i )
          st[i] = i;     
}
int find ( int x ) {
    return x != st[x] ? find ( st[x] ) : x;    
}
void merge ( int x, int y ) {
     x = find ( x );
     y = find ( y );
     if ( x == y ) return;
     st[y] = x;     
}
int main ()
{
    while ( scanf ( "%d", &N )==1) {
           creat ();
           memset ( v, 0, sizeof ( v ) );
           int c = 0;
           for ( int i = 1; i <= N; ++ i ) {
                for ( int j = 1; j <= N; ++ j ) {
                     scanf ( "%d", &w );  
                     v[c++].set ( i,j,w );  
                }    
           }     
           sort ( v, v + c, cmp );
           int sum = 0;
           for ( int i = 0 ; i < c; ++ i ) {
                if ( find ( v[i].x ) != find ( v[i].y ) ) {
                    sum += v[i].val;  
                    merge ( v[i].x, v[i].y );
                }    
           }
           printf ( "%d\n", sum );
    }
    return 0;
}

 



MiYu 2010-10-16 16:30 鍙戣〃璇勮
]]>
Floyd-Warshall綆楁硶璇﹁В錛堣漿錛?/title><link>http://www.shnenglu.com/MiYu/archive/2010/09/25/127655.html</link><dc:creator>MiYu</dc:creator><author>MiYu</author><pubDate>Sat, 25 Sep 2010 12:03:00 GMT</pubDate><guid>http://www.shnenglu.com/MiYu/archive/2010/09/25/127655.html</guid><wfw:comment>http://www.shnenglu.com/MiYu/comments/127655.html</wfw:comment><comments>http://www.shnenglu.com/MiYu/archive/2010/09/25/127655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/MiYu/comments/commentRss/127655.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/MiYu/services/trackbacks/127655.html</trackback:ping><description><![CDATA[<span style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; ">Floyd-Warshall綆楁硶錛岀畝縐癋loyd綆楁硶錛岀敤浜庢眰瑙d換鎰忎袱鐐歸棿鐨勬渶鐭窛紱伙紝鏃墮棿澶嶆潅搴︿負(fù)O(n^3)銆傛垜浠鉤鏃舵墍瑙佺殑Floyd綆楁硶鐨勪竴鑸艦寮忓涓嬶細(xì)</span><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 1109px; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; line-height: 20px; "><span style="color: rgb(0, 128, 128); ">1</span> <span style="color: rgb(0, 0, 255); ">void</span><span style="color: rgb(0, 0, 0); "> Floyd(){<br></span><span style="color: rgb(0, 128, 128); ">2</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> i,j,k;<br></span><span style="color: rgb(0, 128, 128); ">3</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(k</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;k</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;k</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">4</span> <span style="color: rgb(0, 0, 0); ">        </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(i</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;i</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;i</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">5</span> <span style="color: rgb(0, 0, 0); ">            </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(j</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;j</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;j</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">6</span> <span style="color: rgb(0, 0, 0); ">                </span><span style="color: rgb(0, 0, 255); ">if</span><span style="color: rgb(0, 0, 0); ">(dist[i][k]</span><span style="color: rgb(0, 0, 0); ">+</span><span style="color: rgb(0, 0, 0); ">dist[k][j]</span><span style="color: rgb(0, 0, 0); "><</span><span style="color: rgb(0, 0, 0); ">dist[i][j])<br></span><span style="color: rgb(0, 128, 128); ">7</span> <span style="color: rgb(0, 0, 0); ">                    dist[i][j]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">dist[i][k]</span><span style="color: rgb(0, 0, 0); ">+</span><span style="color: rgb(0, 0, 0); ">dist[k][j];<br></span><span style="color: rgb(0, 128, 128); ">8</span> <span style="color: rgb(0, 0, 0); ">}</span></div><p style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; ">  娉ㄦ剰涓嬬6琛岃繖涓湴鏂癸紝濡傛灉dist[i][k]鎴栬卍ist[k][j]涓嶅瓨鍦紝紼嬪簭涓敤涓涓緢澶х殑鏁頒唬鏇褲傛渶濂藉啓鎴恑f(dist[i][k]!=INF && dist[k][j]!=INF && dist[i][k]+dist[k][j]<dist[i][j])錛屼粠鑰岄槻姝㈡孩鍑烘墍閫犳垚鐨勯敊璇?br>  涓婇潰榪欎釜褰㈠紡鐨勭畻娉曞叾瀹炴槸Floyd綆楁硶鐨勭簿綆鐗堬紝鑰岀湡姝g殑Floyd綆楁硶鏄竴縐嶅熀浜嶥P(Dynamic Programming)鐨勬渶鐭礬寰勭畻娉曘?br>  璁懼浘G涓璶 涓《鐐圭殑緙栧彿涓?鍒皀銆備護(hù)c [i, j, k]琛ㄧず浠巌 鍒癹 鐨勬渶鐭礬寰勭殑闀垮害錛屽叾涓璳 琛ㄧず璇ヨ礬寰勪腑鐨勬渶澶ч《鐐癸紝涔熷氨鏄c[i,j,k]榪欐潯鏈鐭礬寰勬墍閫氳繃鐨勪腑闂撮《鐐規(guī)渶澶т笉瓚呰繃k銆傚洜姝わ紝濡傛灉G涓寘鍚竟<i, j>錛屽垯c[i, j, 0] =杈?lt;i, j> 鐨勯暱搴︼紱鑻= j 錛屽垯c[i,j,0]=0錛涘鏋淕涓笉鍖呭惈杈?lt;i, j>錛屽垯c (i, j, 0)= +∞銆俢[i, j, n] 鍒欐槸浠巌 鍒癹 鐨勬渶鐭礬寰勭殑闀垮害銆?br>  瀵逛簬浠繪剰鐨刱>0錛岄氳繃鍒嗘瀽鍙互寰楀埌錛氫腑闂撮《鐐逛笉瓚呰繃k 鐨刬 鍒癹 鐨勬渶鐭礬寰勬湁涓ょ鍙兘錛氳璺緞鍚垨涓嶅惈涓棿欏剁偣k銆傝嫢涓嶅惈錛屽垯璇ヨ礬寰勯暱搴﹀簲涓篶[i, j, k-1]錛屽惁鍒欓暱搴︿負(fù) c[i, k, k-1] +c [k, j, k-1]銆俢[i, j, k]鍙彇涓よ呬腑鐨勬渶灝忓箋?br>  鐘舵佽漿縐繪柟紼嬶細(xì)c[i, j, k]=min{c[i, j, k-1], c [i, k, k-1]+c [k, j, k-1]}錛宬錛?銆?br>  榪欐牱錛岄棶棰樹(shù)究鍏鋒湁浜?jiǎn)鏈浼樺瓙緇撴瀯鎬ц川錛屽彲浠ョ敤鍔ㄦ佽鍒掓柟娉曟潵姹傝В銆?/p><p style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; "></p><div align="center" src_cetemp="/images/cppblog_com/mythit/dist.jpg" style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; "><img height="225" alt="" src="http://www.shnenglu.com/images/cppblog_com/mythit/dist.jpg" width="510" border="0"></div><span style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; ">  涓轟簡(jiǎn)榪涗竴姝ョ悊瑙o紝瑙傚療涓婇潰榪欎釜鏈夊悜鍥撅細(xì)鑻=0, 1, 2, 3錛屽垯c[1,3,k]= +∞錛沜[1,3,4]= 28錛涜嫢k = 5, 6, 7錛屽垯c [1,3,k] = 10錛涜嫢k=8, 9, 10錛屽垯c[1,3,k] = 9銆傚洜姝?鍒?鐨勬渶鐭礬寰勯暱搴︿負(fù)9銆?/span><span style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; "><br></span><span style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; ">  涓嬮潰閫氳繃紼嬪簭鏉ュ垎鏋愯繖涓DP榪囩▼錛屽搴斾笂闈㈢粰鍑虹殑鏈夊悜鍥撅細(xì)</span><span style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; "><br></span><p style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; "> </p><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 1109px; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; line-height: 20px; "><span style="color: rgb(0, 128, 128); "> 1</span> <span style="color: rgb(0, 0, 0); ">#include </span><span style="color: rgb(0, 0, 0); "><</span><span style="color: rgb(0, 0, 0); ">iostream</span><span style="color: rgb(0, 0, 0); ">></span><span style="color: rgb(0, 0, 0); "><br></span><span style="color: rgb(0, 128, 128); "> 2</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">using</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 255); ">namespace</span><span style="color: rgb(0, 0, 0); "> std;<br></span><span style="color: rgb(0, 128, 128); "> 3</span> <span style="color: rgb(0, 0, 0); "><br></span><span style="color: rgb(0, 128, 128); "> 4</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">const</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> INF </span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 0); ">100000</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); "> 5</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> n</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">10</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">11</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">11</span><span style="color: rgb(0, 0, 0); ">],dist[</span><span style="color: rgb(0, 0, 0); ">11</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">11</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">11</span><span style="color: rgb(0, 0, 0); ">];<br></span><span style="color: rgb(0, 128, 128); "> 6</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">void</span><span style="color: rgb(0, 0, 0); "> init(){<br></span><span style="color: rgb(0, 128, 128); "> 7</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> i,j;<br></span><span style="color: rgb(0, 128, 128); "> 8</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(i</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;i</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;i</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); "> 9</span> <span style="color: rgb(0, 0, 0); ">        </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(j</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;j</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;j</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">10</span> <span style="color: rgb(0, 0, 0); ">            map[i][j]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">(i</span><span style="color: rgb(0, 0, 0); ">==</span><span style="color: rgb(0, 0, 0); ">j)</span><span style="color: rgb(0, 0, 0); ">?</span><span style="color: rgb(0, 0, 0); ">0</span><span style="color: rgb(0, 0, 0); ">:INF;<br></span><span style="color: rgb(0, 128, 128); ">11</span> <span style="color: rgb(0, 0, 0); ">    map[</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">4</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">20</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">5</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">12</span> <span style="color: rgb(0, 0, 0); ">    map[</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">4</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">8</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">4</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">6</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">6</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">13</span> <span style="color: rgb(0, 0, 0); ">    map[</span><span style="color: rgb(0, 0, 0); ">4</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">7</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">4</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">5</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">7</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">5</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">8</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">14</span> <span style="color: rgb(0, 0, 0); ">    map[</span><span style="color: rgb(0, 0, 0); ">6</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">7</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">8</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">8</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">6</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">15</span> <span style="color: rgb(0, 0, 0); ">    map[</span><span style="color: rgb(0, 0, 0); ">8</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">10</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">9</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">7</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">10</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">9</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">16</span> <span style="color: rgb(0, 0, 0); ">}<br></span><span style="color: rgb(0, 128, 128); ">17</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">void</span><span style="color: rgb(0, 0, 0); "> floyd_dp(){<br></span><span style="color: rgb(0, 128, 128); ">18</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> i,j,k;<br></span><span style="color: rgb(0, 128, 128); ">19</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(i</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;i</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;i</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">20</span> <span style="color: rgb(0, 0, 0); ">        </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(j</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;j</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;j</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">21</span> <span style="color: rgb(0, 0, 0); ">            dist[i][j][</span><span style="color: rgb(0, 0, 0); ">0</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">map[i][j];<br></span><span style="color: rgb(0, 128, 128); ">22</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(k</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;k</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;k</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">23</span> <span style="color: rgb(0, 0, 0); ">        </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(i</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;i</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;i</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">24</span> <span style="color: rgb(0, 0, 0); ">            </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(j</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;j</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;j</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">){<br></span><span style="color: rgb(0, 128, 128); ">25</span> <span style="color: rgb(0, 0, 0); ">                dist[i][j][k]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">dist[i][j][k</span><span style="color: rgb(0, 0, 0); ">-</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">];<br></span><span style="color: rgb(0, 128, 128); ">26</span> <span style="color: rgb(0, 0, 0); ">                </span><span style="color: rgb(0, 0, 255); ">if</span><span style="color: rgb(0, 0, 0); ">(dist[i][k][k</span><span style="color: rgb(0, 0, 0); ">-</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">+</span><span style="color: rgb(0, 0, 0); ">dist[k][j][k</span><span style="color: rgb(0, 0, 0); ">-</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); "><</span><span style="color: rgb(0, 0, 0); ">dist[i][j][k])<br></span><span style="color: rgb(0, 128, 128); ">27</span> <span style="color: rgb(0, 0, 0); ">                    dist[i][j][k]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">dist[i][k][k</span><span style="color: rgb(0, 0, 0); ">-</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">+</span><span style="color: rgb(0, 0, 0); ">dist[k][j][k</span><span style="color: rgb(0, 0, 0); ">-</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">];<br></span><span style="color: rgb(0, 128, 128); ">28</span> <span style="color: rgb(0, 0, 0); ">            }<br></span><span style="color: rgb(0, 128, 128); ">29</span> <span style="color: rgb(0, 0, 0); ">}<br></span><span style="color: rgb(0, 128, 128); ">30</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> main(){<br></span><span style="color: rgb(0, 128, 128); ">31</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> k,u,v;<br></span><span style="color: rgb(0, 128, 128); ">32</span> <span style="color: rgb(0, 0, 0); ">    init();<br></span><span style="color: rgb(0, 128, 128); ">33</span> <span style="color: rgb(0, 0, 0); ">    floyd_dp();<br></span><span style="color: rgb(0, 128, 128); ">34</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">while</span><span style="color: rgb(0, 0, 0); ">(cin</span><span style="color: rgb(0, 0, 0); ">>></span><span style="color: rgb(0, 0, 0); ">u</span><span style="color: rgb(0, 0, 0); ">>></span><span style="color: rgb(0, 0, 0); ">v,u</span><span style="color: rgb(0, 0, 0); ">||</span><span style="color: rgb(0, 0, 0); ">v){<br></span><span style="color: rgb(0, 128, 128); ">35</span> <span style="color: rgb(0, 0, 0); ">        </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(k</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">0</span><span style="color: rgb(0, 0, 0); ">;k</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;k</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">){<br></span><span style="color: rgb(0, 128, 128); ">36</span> <span style="color: rgb(0, 0, 0); ">            </span><span style="color: rgb(0, 0, 255); ">if</span><span style="color: rgb(0, 0, 0); ">(dist[u][v][k]</span><span style="color: rgb(0, 0, 0); ">==</span><span style="color: rgb(0, 0, 0); ">INF) cout</span><span style="color: rgb(0, 0, 0); "><<</span><span style="color: rgb(0, 0, 0); ">"</span><span style="color: rgb(0, 0, 0); ">+∞</span><span style="color: rgb(0, 0, 0); ">"</span><span style="color: rgb(0, 0, 0); "><<</span><span style="color: rgb(0, 0, 0); ">endl;<br></span><span style="color: rgb(0, 128, 128); ">37</span> <span style="color: rgb(0, 0, 0); ">            </span><span style="color: rgb(0, 0, 255); ">else</span><span style="color: rgb(0, 0, 0); "> cout</span><span style="color: rgb(0, 0, 0); "><<</span><span style="color: rgb(0, 0, 0); ">dist[u][v][k]</span><span style="color: rgb(0, 0, 0); "><<</span><span style="color: rgb(0, 0, 0); ">endl;<br></span><span style="color: rgb(0, 128, 128); ">38</span> <span style="color: rgb(0, 0, 0); ">        }<br></span><span style="color: rgb(0, 128, 128); ">39</span> <span style="color: rgb(0, 0, 0); ">    }<br></span><span style="color: rgb(0, 128, 128); ">40</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">return</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 0); ">0</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">41</span> <span style="color: rgb(0, 0, 0); ">}</span></div><p style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; ">  杈撳叆 1 3<br>  杈撳嚭 +∞<br>            +∞<br>            +∞<br>            +∞<br>            28<br>            10<br>            10<br>            10<br>            9<br>            9<br>            9</p><p style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; ">  Floyd-Warshall綆楁硶涓嶄粎鑳芥眰鍑轟換鎰?鐐歸棿鐨勬渶鐭礬寰勶紝榪樺彲浠ヤ繚瀛樻渶鐭礬寰勪笂緇忚繃鐨勮妭鐐廣備笅闈㈢敤綺劇畝鐗堢殑Floyd綆楁硶瀹炵幇榪欎竴榪囩▼錛岀▼搴忎腑鐨勫浘渚濈劧瀵瑰簲涓婇潰鐨勬湁鍚戝浘銆?br></p><div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: rgb(204, 204, 204); width: 1109px; word-break: break-all; padding-top: 4px; background-color: rgb(238, 238, 238); color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; line-height: 20px; "><span style="color: rgb(0, 128, 128); "> 1</span> <span style="color: rgb(0, 0, 0); ">#include </span><span style="color: rgb(0, 0, 0); "><</span><span style="color: rgb(0, 0, 0); ">iostream</span><span style="color: rgb(0, 0, 0); ">></span><span style="color: rgb(0, 0, 0); "><br></span><span style="color: rgb(0, 128, 128); "> 2</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">using</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 255); ">namespace</span><span style="color: rgb(0, 0, 0); "> std;<br></span><span style="color: rgb(0, 128, 128); "> 3</span> <span style="color: rgb(0, 0, 0); "><br></span><span style="color: rgb(0, 128, 128); "> 4</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">const</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> INF </span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 0); ">100000</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); "> 5</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> n</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">10</span><span style="color: rgb(0, 0, 0); ">,path[</span><span style="color: rgb(0, 0, 0); ">11</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">11</span><span style="color: rgb(0, 0, 0); ">],dist[</span><span style="color: rgb(0, 0, 0); ">11</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">11</span><span style="color: rgb(0, 0, 0); ">],map[</span><span style="color: rgb(0, 0, 0); ">11</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">11</span><span style="color: rgb(0, 0, 0); ">];<br></span><span style="color: rgb(0, 128, 128); "> 6</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">void</span><span style="color: rgb(0, 0, 0); "> init(){<br></span><span style="color: rgb(0, 128, 128); "> 7</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> i,j;<br></span><span style="color: rgb(0, 128, 128); "> 8</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(i</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;i</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;i</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); "> 9</span> <span style="color: rgb(0, 0, 0); ">        </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(j</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;j</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;j</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">10</span> <span style="color: rgb(0, 0, 0); ">            map[i][j]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">(i</span><span style="color: rgb(0, 0, 0); ">==</span><span style="color: rgb(0, 0, 0); ">j)</span><span style="color: rgb(0, 0, 0); ">?</span><span style="color: rgb(0, 0, 0); ">0</span><span style="color: rgb(0, 0, 0); ">:INF;<br></span><span style="color: rgb(0, 128, 128); ">11</span> <span style="color: rgb(0, 0, 0); ">    map[</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">4</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">20</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">5</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">12</span> <span style="color: rgb(0, 0, 0); ">    map[</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">4</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">8</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">4</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">6</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">6</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">13</span> <span style="color: rgb(0, 0, 0); ">    map[</span><span style="color: rgb(0, 0, 0); ">4</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">7</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">4</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">5</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">7</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">5</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">8</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">14</span> <span style="color: rgb(0, 0, 0); ">    map[</span><span style="color: rgb(0, 0, 0); ">6</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">3</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">7</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">8</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">8</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">6</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">15</span> <span style="color: rgb(0, 0, 0); ">    map[</span><span style="color: rgb(0, 0, 0); ">8</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">10</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">9</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">7</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">2</span><span style="color: rgb(0, 0, 0); ">,map[</span><span style="color: rgb(0, 0, 0); ">10</span><span style="color: rgb(0, 0, 0); ">][</span><span style="color: rgb(0, 0, 0); ">9</span><span style="color: rgb(0, 0, 0); ">]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">16</span> <span style="color: rgb(0, 0, 0); ">}<br></span><span style="color: rgb(0, 128, 128); ">17</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">void</span><span style="color: rgb(0, 0, 0); "> floyd(){<br></span><span style="color: rgb(0, 128, 128); ">18</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> i,j,k;<br></span><span style="color: rgb(0, 128, 128); ">19</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(i</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;i</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;i</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">20</span> <span style="color: rgb(0, 0, 0); ">        </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(j</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;j</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;j</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">21</span> <span style="color: rgb(0, 0, 0); ">            dist[i][j]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">map[i][j],path[i][j]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">0</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">22</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(k</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;k</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;k</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">23</span> <span style="color: rgb(0, 0, 0); ">        </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(i</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;i</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;i</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">24</span> <span style="color: rgb(0, 0, 0); ">            </span><span style="color: rgb(0, 0, 255); ">for</span><span style="color: rgb(0, 0, 0); ">(j</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">1</span><span style="color: rgb(0, 0, 0); ">;j</span><span style="color: rgb(0, 0, 0); "><=</span><span style="color: rgb(0, 0, 0); ">n;j</span><span style="color: rgb(0, 0, 0); ">++</span><span style="color: rgb(0, 0, 0); ">)<br></span><span style="color: rgb(0, 128, 128); ">25</span> <span style="color: rgb(0, 0, 0); ">                </span><span style="color: rgb(0, 0, 255); ">if</span><span style="color: rgb(0, 0, 0); ">(dist[i][k]</span><span style="color: rgb(0, 0, 0); ">+</span><span style="color: rgb(0, 0, 0); ">dist[k][j]</span><span style="color: rgb(0, 0, 0); "><</span><span style="color: rgb(0, 0, 0); ">dist[i][j])<br></span><span style="color: rgb(0, 128, 128); ">26</span> <span style="color: rgb(0, 0, 0); ">                    dist[i][j]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">dist[i][k]</span><span style="color: rgb(0, 0, 0); ">+</span><span style="color: rgb(0, 0, 0); ">dist[k][j],path[i][j]</span><span style="color: rgb(0, 0, 0); ">=</span><span style="color: rgb(0, 0, 0); ">k;<br></span><span style="color: rgb(0, 128, 128); ">27</span> <span style="color: rgb(0, 0, 0); ">}<br></span><span style="color: rgb(0, 128, 128); ">28</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">void</span><span style="color: rgb(0, 0, 0); "> output(</span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> i,</span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> j){<br></span><span style="color: rgb(0, 128, 128); ">29</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">if</span><span style="color: rgb(0, 0, 0); ">(i</span><span style="color: rgb(0, 0, 0); ">==</span><span style="color: rgb(0, 0, 0); ">j) </span><span style="color: rgb(0, 0, 255); ">return</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">30</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">if</span><span style="color: rgb(0, 0, 0); ">(path[i][j]</span><span style="color: rgb(0, 0, 0); ">==</span><span style="color: rgb(0, 0, 0); ">0</span><span style="color: rgb(0, 0, 0); ">) cout</span><span style="color: rgb(0, 0, 0); "><<</span><span style="color: rgb(0, 0, 0); ">j</span><span style="color: rgb(0, 0, 0); "><<</span><span style="color: rgb(0, 0, 0); ">'</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 0); ">'</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">31</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">else</span><span style="color: rgb(0, 0, 0); ">{<br></span><span style="color: rgb(0, 128, 128); ">32</span> <span style="color: rgb(0, 0, 0); ">        output(i,path[i][j]);<br></span><span style="color: rgb(0, 128, 128); ">33</span> <span style="color: rgb(0, 0, 0); ">        output(path[i][j],j);<br></span><span style="color: rgb(0, 128, 128); ">34</span> <span style="color: rgb(0, 0, 0); ">    }<br></span><span style="color: rgb(0, 128, 128); ">35</span> <span style="color: rgb(0, 0, 0); ">}<br></span><span style="color: rgb(0, 128, 128); ">36</span> <span style="color: rgb(0, 0, 0); "></span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> main(){<br></span><span style="color: rgb(0, 128, 128); ">37</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">int</span><span style="color: rgb(0, 0, 0); "> u,v;<br></span><span style="color: rgb(0, 128, 128); ">38</span> <span style="color: rgb(0, 0, 0); ">    init();<br></span><span style="color: rgb(0, 128, 128); ">39</span> <span style="color: rgb(0, 0, 0); ">    floyd();<br></span><span style="color: rgb(0, 128, 128); ">40</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">while</span><span style="color: rgb(0, 0, 0); ">(cin</span><span style="color: rgb(0, 0, 0); ">>></span><span style="color: rgb(0, 0, 0); ">u</span><span style="color: rgb(0, 0, 0); ">>></span><span style="color: rgb(0, 0, 0); ">v,u</span><span style="color: rgb(0, 0, 0); ">||</span><span style="color: rgb(0, 0, 0); ">v){<br></span><span style="color: rgb(0, 128, 128); ">41</span> <span style="color: rgb(0, 0, 0); ">        </span><span style="color: rgb(0, 0, 255); ">if</span><span style="color: rgb(0, 0, 0); ">(dist[u][v]</span><span style="color: rgb(0, 0, 0); ">==</span><span style="color: rgb(0, 0, 0); ">INF) cout</span><span style="color: rgb(0, 0, 0); "><<</span><span style="color: rgb(0, 0, 0); ">"</span><span style="color: rgb(0, 0, 0); ">No path</span><span style="color: rgb(0, 0, 0); ">"</span><span style="color: rgb(0, 0, 0); "><<</span><span style="color: rgb(0, 0, 0); ">endl;<br></span><span style="color: rgb(0, 128, 128); ">42</span> <span style="color: rgb(0, 0, 0); ">        </span><span style="color: rgb(0, 0, 255); ">else</span><span style="color: rgb(0, 0, 0); ">{<br></span><span style="color: rgb(0, 128, 128); ">43</span> <span style="color: rgb(0, 0, 0); ">            cout</span><span style="color: rgb(0, 0, 0); "><<</span><span style="color: rgb(0, 0, 0); ">u</span><span style="color: rgb(0, 0, 0); "><<</span><span style="color: rgb(0, 0, 0); ">'</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 0); ">'</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">44</span> <span style="color: rgb(0, 0, 0); ">            output(u,v);<br></span><span style="color: rgb(0, 128, 128); ">45</span> <span style="color: rgb(0, 0, 0); ">            cout</span><span style="color: rgb(0, 0, 0); "><<</span><span style="color: rgb(0, 0, 0); ">endl;<br></span><span style="color: rgb(0, 128, 128); ">46</span> <span style="color: rgb(0, 0, 0); ">        }<br></span><span style="color: rgb(0, 128, 128); ">47</span> <span style="color: rgb(0, 0, 0); ">    }<br></span><span style="color: rgb(0, 128, 128); ">48</span> <span style="color: rgb(0, 0, 0); ">    </span><span style="color: rgb(0, 0, 255); ">return</span><span style="color: rgb(0, 0, 0); "> </span><span style="color: rgb(0, 0, 0); ">0</span><span style="color: rgb(0, 0, 0); ">;<br></span><span style="color: rgb(0, 128, 128); ">49</span> <span style="color: rgb(0, 0, 0); ">}</span></div><p style="color: rgb(75, 75, 75); font-family: georgia, verdana, Arial, helvetica, sans-seriff; font-size: 13px; line-height: 20px; ">  杈撳叆 1 3                    <br>  杈撳嚭 1 2 5 8 6 3</p> <img src ="http://www.shnenglu.com/MiYu/aggbug/127655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/MiYu/" target="_blank">MiYu</a> 2010-09-25 20:03 <a href="http://www.shnenglu.com/MiYu/archive/2010/09/25/127655.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.kong-ya-ji-wang.com.cn" target="_blank">1000部精品久久久久久久久</a>| <a href="http://www.fashion28.cn" target="_blank">国产欧美久久久精品影院</a>| <a href="http://www.asyb.com.cn" target="_blank">亚洲∧v久久久无码精品</a>| <a href="http://www.khdv.cn" target="_blank">国产精品久久久久久</a>| <a href="http://www.hifistudio.cn" target="_blank">国内精品久久久久久不卡影院</a>| <a href="http://www.sonsan.cn" target="_blank">国产AⅤ精品一区二区三区久久</a>| <a href="http://www.xwbu.cn" target="_blank">手机看片久久高清国产日韩</a>| <a href="http://www.suvvoza.cn" target="_blank">一本一道久久综合狠狠老</a>| <a href="http://www.jytextile.cn" target="_blank">久久精品九九亚洲精品</a>| <a href="http://www.buniaowan.cn" target="_blank">99久久精品九九亚洲精品</a>| <a href="http://www.babaishu.cn" target="_blank">国产精品久久久久久久久软件</a>| <a href="http://www.gzfbn.cn" target="_blank">精品无码久久久久久尤物</a>| <a href="http://www.essledyntp.com.cn" target="_blank">久久久精品国产Sm最大网站</a>| <a href="http://www.qqzhuti.cn" target="_blank">日韩精品久久久久久免费</a>| <a href="http://www.rc51.cn" target="_blank">久久久久久久国产免费看</a>| <a href="http://www.sun-q.cn" target="_blank">久久亚洲中文字幕精品有坂深雪 </a>| <a href="http://www.qnui.cn" target="_blank">久久久久国产视频电影</a>| <a href="http://www.huizhiming.cn" target="_blank">亚洲精品无码成人片久久</a>| <a href="http://www.jlauyh.cn" target="_blank">久久久综合香蕉尹人综合网</a>| <a href="http://www.jzqyc.com.cn" target="_blank">色欲综合久久躁天天躁蜜桃</a>| <a href="http://www.liuxuehanguo.cn" target="_blank">很黄很污的网站久久mimi色</a>| <a href="http://www.jywxhs.cn" target="_blank">av色综合久久天堂av色综合在</a>| <a href="http://www.coldcha.cn" target="_blank">国産精品久久久久久久</a>| <a href="http://www.le-q.cn" target="_blank">国内精品伊人久久久久av一坑</a>| <a href="http://www.nokia-flash.cn" target="_blank">免费一级欧美大片久久网</a>| <a href="http://www.vtqqv.cn" target="_blank">国产精品福利一区二区久久</a>| <a href="http://www.hoqw.cn" target="_blank">久久人做人爽一区二区三区</a>| <a href="http://www.girla.cn" target="_blank">久久久久亚洲av毛片大</a>| <a href="http://www.songyuan163.net.cn" target="_blank">国产成人无码久久久精品一</a>| <a href="http://www.rrthhz.cn" target="_blank">精品久久久中文字幕人妻 </a>| <a href="http://www.taphha.cn" target="_blank">久久综合亚洲色HEZYO社区</a>| <a href="http://www.jl893.com.cn" target="_blank">97精品国产97久久久久久免费</a>| <a href="http://www.nutiao.cn" target="_blank">久久精品www人人爽人人</a>| <a href="http://www.watchesmade.cn" target="_blank">久久久国产99久久国产一</a>| <a href="http://www.39xw.cn" target="_blank">欧美午夜A∨大片久久 </a>| <a href="http://www.2008qb.cn" target="_blank">久久精品国产黑森林</a>| <a href="http://www.djdnx.cn" target="_blank">国产91久久综合</a>| <a href="http://www.grzzc358.cn" target="_blank">久久久久亚洲AV成人网人人软件</a>| <a href="http://www.wangzhuanzhe.cn" target="_blank">国产精品久久久久久</a>| <a href="http://www.sifaguojinb.cn" target="_blank">国产高潮国产高潮久久久</a>| <a href="http://www.linkyes.cn" target="_blank">日本道色综合久久影院</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>