锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品无码一区二区三区日韩 ,一本一道久久精品综合,2021久久精品免费观看http://m.shnenglu.com/yuanyuelang/category/11780.htmlzh-cnWed, 23 Sep 2009 15:40:15 GMTWed, 23 Sep 2009 15:40:15 GMT60姣忓欏剁偣闂寸殑鏈鐭礬寰勪箣Floyd-Warshall綆楁硶http://m.shnenglu.com/yuanyuelang/articles/97008.html鍘熻楗跨嫾鍘熻楗跨嫾Wed, 23 Sep 2009 03:35:00 GMThttp://m.shnenglu.com/yuanyuelang/articles/97008.htmlhttp://m.shnenglu.com/yuanyuelang/comments/97008.htmlhttp://m.shnenglu.com/yuanyuelang/articles/97008.html#Feedback0http://m.shnenglu.com/yuanyuelang/comments/commentRss/97008.htmlhttp://m.shnenglu.com/yuanyuelang/services/trackbacks/97008.htmlFloyd-Warshall綆楁硶鐨勫熀鏈濊礬鏄細
   1.鐢―[v][w]璁板綍姣忓欏剁偣闂寸殑鏈鐭窛紱?br>   2.瀵規(guī)瘡涓涓浘涓殑欏剁偣錛屼互鍏朵綔涓哄熀鐐規(guī)壂鎻忔瘡涓瀵笵[v][w]錛屾楠屾槸鍚﹂氳繃璇ュ熀鐐瑰彲浠ヤ嬌寰楄繖瀵歸《鐐歸棿鐨勮窛紱誨彉灝忋?br>
鎴戜滑瀹為檯鏄緢瀹規(guī)槗灝卞彲浠ュ啓鍑鴻繖涓畻娉曠殑浠g爜錛?
#define N 100
void Floyd(int dist[N][N],int n)
{
  
int i,j,k;
  
for(k=0;k<n;k++)
    
for(i=0;i<n;i++)
      
for(j=0;j<n;j++)
        
if(dist[i][k]+dist[k][j]<dist[i][j])
           dist[i][j]
=dist[i][k]+dist[k][j];
        
}

  

鎴戜滑榪橀潰涓翠竴涓繚瀛樿礬寰勭殑闂,濡備綍鏉ュ仛鍛紵
#define N 100
int map[N][N];
void Floyd(int dist[N][N],int path[N][N],int n)
{
  
int i,j,k;
  
for(i=0;i<n;i++)
    
for(j=0;j<n;j++)
      dist[i][j]
=map[i][j],path[i][j]=0;
  
for(k=0;k<n;k++)
    
for(i=0;i<n;i++)
      
for(j=0;j<n;j++)
        
if(dist[i][k]+dist[k][j]<dist[i][j]){
           dist[i][j]
=dist[i][k]+dist[k][j];
           path[i][j]
=k;
        
}


void output(int i,int j)
{
  
if(i==j) return;
  
if(path[i][j]==0) cout<<j<<" ";
  
else{
    output(i,path[i][j]);
    output(path[i][j],j);
  }

}

  



]]>
鍗曟簮鏈鐭礬寰勪箣Dijkstra綆楁硶http://m.shnenglu.com/yuanyuelang/articles/96153.html鍘熻楗跨嫾鍘熻楗跨嫾Mon, 14 Sep 2009 13:21:00 GMThttp://m.shnenglu.com/yuanyuelang/articles/96153.htmlhttp://m.shnenglu.com/yuanyuelang/comments/96153.htmlhttp://m.shnenglu.com/yuanyuelang/articles/96153.html#Feedback0http://m.shnenglu.com/yuanyuelang/comments/commentRss/96153.htmlhttp://m.shnenglu.com/yuanyuelang/services/trackbacks/96153.html鍗曟簮鏈鐭礬寰勶紝瑙e喅鐨勬槸浠涔堥棶棰樺憿錛?br>欏懼悕鎬濅箟錛屽崟婧愯鏄庝粠涓涓簮鍑哄彂錛屽嚭鍙戝埌鍝噷鍛紵涓嶇鍒板摢閲屾垜閮借姹傚緱涓涓渶鐭殑璺緞銆?br>
姣旇緝姝e紡鐨勮娉曪細
瀵逛簬鏈夊悜鍥綠={V,E},甯︽潈錛屾敞鎰廌ijkstra綆楁硶瑕佹眰鎵鏈夌殑鏉冨奸潪璐燂紝
鍋囪鎴戜滑鐨勬簮鏄痵錛屾簮鐐硅鍒拌揪鐨勭偣闆嗗悎鏄疭錛屾垜浠瘡嬈¢夋嫨鍏鋒湁鏈鐭礬寰勪及璁$殑欏剁偣u(u鍦╒-S涓紝騫跺皢u鍔犲叆鍒癝涓紝鐒跺悗姝ゆ椂瑕佸u鎵鏈夌殑鍑鴻竟榪涜澶勭悊錛屾庝箞澶勭悊錛屾垜浠鏈鐭礬寰勶紝鎵浠ユ鏃惰鍒ゆ柇s緇忚繃u鍒拌揪V-S涓殑鐐逛細涓嶄細姣斾笉緇忚繃u鍒拌揪鏉ョ殑灝忥紝鏇存柊鍛靛懙..

閭d箞鎬庝箞鍐欐垚浠g爜鍛紵
1.鎴戜滑闇瑕佷簩緇存暟緇刧raph[][]琛ㄧず鍥撅紝鐢╠istance[]鏁扮粍鏉ヨ〃紺烘簮鐐筕0鍒板叾瀹冮《鐐圭殑鏈鐭礬寰刣istance[v]錛屾垜浠繕瑕佷繚瀛樺叿浣撹礬寰勶紝鎴戜滑鐢╬ath[][]浜岀淮bool鏁扮粍鏉ヨ〃紺?path[1]灝辮〃紺烘簮鐐瑰埌欏剁偣V1鐨勮礬寰勶紝path[1][0,n-1]鏁扮粍閲岄潰鐨勫厓绱犲鏋滀負true琛ㄧずV0鏈夌粡榪囬偅浜涢《鐐瑰埌杈綱1
2.鎴戜滑榪樿鑰冭檻鍒伴《鐐規(guī)槸鍚﹀凡緇忓姞鍒癝涓紝鐢ㄤ竴涓猣lag鏁扮粍鏉ユ爣蹇楅《鐐規(guī)槸鍚﹀凡緇忔眰鐨勬渶鐭礬寰勪簡銆?br>
榪樿鍒嗘竻鏄湁鍚戝浘榪樻槸鏃犲悜鍥撅紝榪欏浜庡叆杈瑰拰鍑鴻竟鍦ㄧ▼搴忓鐞嗙殑鏃跺欒娉ㄦ剰銆?/font> 

#define MAXN 100
#define INF 0xfffffff


//娉ㄦ剰graph閲岄潰鐨勬暟鎹紝涓ら《鐐筰鎸囧悜j鏈夎竟錛岄暱涓簉錛屽垯graph[i][j]=r,鍏朵綑鎯呭喌graph涓篒NF錛屽寘鎷琲==j

void dijkstra(int graph[MAXN][MAXN],bool path[MAXN][MAXN],int distance[],int n)
{
    
int i,j,min,vertex;
    
bool flag[MAXN];
    
for(i=0;i<n;i++){//鍒濆鍖?/span>
        distance[i]=graph[0][i];
        flag[i]
=false;
        
for(j=0;j<n;j++) path[i][j]=false;
        
if(distance[i]<INF)//璺緞蹇呭畾鑷沖皯鏈塿0鍜寁i涓や釜欏剁偣
            p[i][0]=true;p[i][i]=true;
        }

    }


    flag[
0]=true;
    distance[
0]=0;//娉ㄦ剰涓瀹氳鍒濆鍖杁istance[0]
    for(i=1;i<n;i++){
        min
=INF;
        
for(j=1;j<n;j++)
            
if(!flag[j]&&distance[j]<min){//鎵懼埌鏈榪戠殑鐐?/span>
                min=distance[j];
                vertex
=j;
            }

        flag[vertex]
=true;
        
for(j=1;j<n;j++)
            
if(!flag[j]&&graph[vertex][j]+min<distance[j]){//濡傛灉鍙互閫氳繃vertex鏇磋繎鐨勮瘽,鏇存柊
                distance[j]=graph[vertex][j]+min;
                
for(int k=0;k<n;k++) path[j][k]=path[vertex][k];
                path[j][j]
=true;
            }

    }


}


璇瘋鑰呭姟蹇呰嚜宸變婦涓緥瀛愶紝榪愯鐪嬬湅錛岃繖鏍峰瓙鎵嶈兘鐞嗚В濂界悊瑙g殑鏍規(guī)繁钂傚浐錛岃繕鏈変竴瀹氳鑷繁涓嶆柇鐨勫啓錛岃嚜宸卞鉤甯歌閿葷偧錛屽仛ACM棰樼洰鏃舵渶濂借嚜宸卞啀鍐欎竴閬嶏紝涓嶈澶緷璧栨ā鏉夸簡鍝堝搱銆傘?/span>

]]>
鏈灝忕敓鎴愭爲涔婸rim綆楁硶http://m.shnenglu.com/yuanyuelang/articles/96141.html鍘熻楗跨嫾鍘熻楗跨嫾Mon, 14 Sep 2009 10:47:00 GMThttp://m.shnenglu.com/yuanyuelang/articles/96141.htmlhttp://m.shnenglu.com/yuanyuelang/comments/96141.htmlhttp://m.shnenglu.com/yuanyuelang/articles/96141.html#Feedback0http://m.shnenglu.com/yuanyuelang/comments/commentRss/96141.htmlhttp://m.shnenglu.com/yuanyuelang/services/trackbacks/96141.html鏈灝忕敓鎴愭爲鏄浘璁虹殑涓涓噸瑕侀儴鍒嗭紝瑙e喅榪欎釜闂鐨勭畻娉曚富瑕佹湁Kruskal綆楁硶鍜孭rim綆楁硶銆?br>
鏈灝忕敓鎴愭爲:欏懼悕鎬濅箟鏄竴媯墊爲錛岃鏍戞槸鍥句腑鏉冨煎拰鏈灝忕殑銆?br>
榪欑瘒鏂囩珷浠嬬粛Prim綆楁硶錛孠ruskal綆楁硶璇峰弬闃?a title=鏈灝忕敓鎴愭爲涔婯ruskal綆楁硶 href="http://m.shnenglu.com/yuanyuelang/articles/96060.html">鏈灝忕敓鎴愭爲涔婯ruskal綆楁硶銆?br>
Prim綆楁硶鐨勪富瑕佹濊礬錛?br>1.鍥綠={V,E},V琛ㄧず鑺傜偣闆嗭紝E琛ㄧず杈歸泦錛屽垵濮嬫椂灝哣0浠嶸涓嬁鍑猴紝鏀懼叆絀洪泦鍚圲涓紝U={V0}錛孴(E)絀?br>2.閫夋嫨鍜岄泦鍚圲鏈夎繛鎺ョ殑涓旀渶榪戠殑鐐筕x錛堝湪V涓級錛屾斁鍏錛孶={V0,Vx},騫跺皢杈瑰姞鍏ュ埌T(E)涓?br>3.閲嶅絎簩姝ワ紝鐩村埌U=V
寰堟槑鏄鵑渶瑕乶-1姝ワ紝n涓哄浘鐨勮妭鐐規(guī)暟銆?br>
鐜板湪鎴戜滑灝辨槸瑕佸浣曟妸瀹冨彉鎴愪唬鐮佺殑闂浜嗐?br>1.瀛樺偍闂錛屾垜浠渶瑕佷竴涓簩鍏冩暟緇刧raph涓嬫爣瀛樻斁鑺傜偣錛屾暟緇勫煎瓨鏀炬潈鍊箋傛瘮濡?1,2)鏈夎竟錛屾潈鍊間負3錛屽垯graph[1][2]=3,鍚屾椂graph[2][1]=3錛屾病鏈夎竟鐨勭偣鐢↖NF錛堟棤絀峰ぇ錛夎〃紺哄挴銆?br>2.濡備綍鍒ゆ柇鍜屾渶榪戠殑鐐癸紝鐢變簬姣忎竴嬈¤繘鏉ラ兘浼氭敼鍙樻儏鍐碉紝鎵浠ユ瘡嬈¢兘瑕佹洿鏂幫紝鎴戜滑鐢ㄤ竴涓竴鍏冩暟緇刼pt[n]鏉ヨ〃紺猴紝鏁扮粍涓嬫爣琛ㄧず鑺傜偣鍙鳳紝鍊艱〃紺鴻鑺傜偣鍒癠鐨勬渶鐭窛紱匯傝浣忥紝鍔犲叆鍒癠闆嗗悎鐨勭偣鏄笉鐢ㄥ啀綆″畠鐨勪簡錛屾墍浠ワ紝鎴戜滑榪樿璁劇疆涓涓暟緇刦lag[n]錛屾潵璁劇疆鏍囧織浣嶏紝鐪嬫槸鍚﹀凡緇忓姞鍏ュ埌U闆嗗悎浜嗐?br>3.榪欐牱鐨勮瘽澶у姛涔熷氨鍛婃垚浜嗭紝涓鑸氨浼氬啓浜嗗惂銆傚鏋滆淇濆瓨鍚勪釜杈圭殑璇濓紝榪樿娣誨姞涓涓暟緇刲ine[n]鏉ヨ〃紺鴻妭鐐瑰埌U鐨勬渶鐭窛紱誨埌搴曟槸榪炴帴U涓摢涓涓妭鐐圭殑銆?br>
鐪嬬湅浠g爜錛屽垎鏋愬垎鏋愬惂銆傘傝浣忓緢閲嶈鐨勶紝鑷繁涓句釜渚嬪瓙鐪嬬湅銆傛渶鍚庝竴瀹氳鐔熺粌鎺屾彙鍏跺師鐞嗭紝騫朵笖蹇熺殑鍐欏嚭浠g爜銆?br>
#define MAXN 100
#define INF 0xfffffff

int result_s[MAXN],result_e[MAXN];//淇濆瓨杈?/span>

void prim(int graph[MAXN][MAXN],int opt[],int n)
{
  
int i,j,min,vertex錛宭ine[n];
  
bool flag[n];
 
  
for(i=0;i<n;i++)//鍒濆鍖?/span>
    opt[i]=graph[0][i];
    line[i]
=0;
    flag[i]
=false;
   }

  flag[
0]=true;
  
for(i=1;i<n;i++){
    min
=INF;
    
for(j=1;j<n;j++){
      
if(!flag[j]&&opt[j]<min){//閫夋嫨鏈浼樼偣
        min=opt[j];
        vertex
=j;
      }

    }

    flag[vertex]
=true//鍔犲叆鍒癠闆嗗悎
    result_s[i]=line[vertex];//淇濆瓨
    result_e[i]=vertex;
    
for(j=1;j<n;j++){//鏇存柊
      if(!flag[j]&&graph[vertex][j]<opt[j])
         opt[j]
=graph[vertex][j];
         line[j]
=vertex;
    }

  }

}

鍥犱負浠g爜鏄嚜宸卞綋鍦哄啓鍑烘潵錛屽啓鍑烘潵鍜屽師鏉ユ紜唬鐮佺浉姣旇緝浜嗭紝濡傛灉璇昏呭彂鐜版湁閿欙紝榪樻湜鎸囨銆?br>鎴戞兂鎴戜滑灝辨槸瑕侀敾鐐艱繖縐嶅啓浠g爜鐨勮兘鍔涳紝涓嶈兘澶緷闈犳ā鏉匡紝涓嶇劧蹇樺緱蹇?br>娉ㄦ剰錛氭渶鍚庣粨鏋滈兘鐭ラ亾浜嗭紝opt[]淇濆瓨鐨勬槸鏈灝忕敓鎴愭爲鐨勯夊叆鐨勫悇涓竟鐨勬潈鍊鹼紝result_s[]鍜宺esult_e淇濆瓨浜嗗埌搴曟槸鍝簺鐐圭粍鎴愮殑鏈灝忕敓鎴愭爲銆?br>


















]]>
鏈灝忕敓鎴愭爲涔婯ruskal綆楁硶http://m.shnenglu.com/yuanyuelang/articles/96060.html鍘熻楗跨嫾鍘熻楗跨嫾Sun, 13 Sep 2009 13:18:00 GMThttp://m.shnenglu.com/yuanyuelang/articles/96060.htmlhttp://m.shnenglu.com/yuanyuelang/comments/96060.htmlhttp://m.shnenglu.com/yuanyuelang/articles/96060.html#Feedback0http://m.shnenglu.com/yuanyuelang/comments/commentRss/96060.htmlhttp://m.shnenglu.com/yuanyuelang/services/trackbacks/96060.html鏈灝忕敓鎴愭爲鏄浘璁虹殑涓涓噸瑕侀儴鍒嗭紝瑙e喅榪欎釜闂鐨勭畻娉曚富瑕佹湁Kruskal綆楁硶鍜孭rim綆楁硶銆?br>
鏈灝忕敓鎴愭爲:欏懼悕鎬濅箟鏄竴媯墊爲錛岃鏍戞槸鍥句腑鏉冨煎拰鏈灝忕殑銆?br>
鎴戜滑鍏堟潵浠嬬粛Kruskal綆楁硶錛孭rim綆楁硶璇峰弬闃?a title=鏈灝忕敓鎴愭爲涔婸rim綆楁硶 href="http://m.shnenglu.com/yuanyuelang/articles/96141.html">鏈灝忕敓鎴愭爲涔婸rim綆楁硶

璇ョ畻娉曠殑鍩烘湰鎬濊礬錛氳椽蹇冿紝濡備綍璐績鍛紵
瀹冪殑璐績鍑嗗垯鏄細
1.姣忔浠庡墿涓嬬殑杈逛腑閫夋嫨涓涓笉浼氫駭鐢熺幆璺屼笖鏉冨兼渶灝忕殑杈瑰姞鍏ュ埌宸茬粡閫夋嫨濂界殑杈圭殑闆嗗悎涓?br>2.瀹冮渶瑕乪姝ョ殑鎿嶄綔錛宔琛ㄧず鍥劇殑杈規(guī)暟錛屾垜浠彲浠ユ寜鏉冨兼帓濂藉簭鍚庯紝瀵規(guī)瘡涓鏉¤竟榪涜閫夋嫨錛屽鏋滃姞鍏ュ埌宸茬粡閫夋嫨濂界殑杈逛腑浼氫駭鐢熷洖璺殑鐜拌薄錛屽氨涓嶈浜嗐傘傘傚惁鍒欏姞鍏ュ埌宸茬粡閫夋嫨濂界殑杈逛腑銆?br>3.鎴戜滑榪橀渶鐢ㄥ埌騫舵煡闆嗙殑鎬濇兂錛屾湁鍏沖茍鏌ラ泦鐨勪粙緇嶏紝璇鋒煡鐪嬫垜鐨勫彟涓綃囧崥鏂?涓嶇浉浜ら泦鍚堟暟鎹粨鏋?/a>
4.澶嶆潅搴︼細O(ElgE)錛屽叾涓璄涓哄浘鐨勮竟鏁?br>
鎺ヤ笅鏉ユ垜浠紩鐢≒OJ涓婄殑涓涓粡鍏擱鐩潵鍒嗘瀽錛岄鐩綉鍧
http://acm.pku.edu.cn/JudgeOnline/problem?id=1861

棰樼洰澶ф剰鏄細棰樼洰緇欏嚭鐨勬槸鍥劇殑欏剁偣鍜屾墍鏈夎竟鐨勯泦鍚堬紝瑕佹眰杈撳嚭鐨勬槸鏈灝忕敓鎴愭爲鐨勮竟

鎴戜滑鏉ョ湅涓嬫簮鐮佸暒錛?br>
#include<iostream>
using namespace std;
#include
<algorithm>
#include 
<memory.h>

#define MAXEDGE 15001//鏈澶ц竟鏁?/span>
#define MAXNODE 1001 //鏈澶ц妭鐐規(guī)暟

int p[MAXNODE],rank[MAXNODE];//鐢ㄤ簬涓嶇浉浜ら泦鍚?/span>
int start[MAXEDGE],end[MAXEDGE],weight[MAXEDGE],VNum,ENum;//鍒嗗埆涓鴻竟鐨勮搗鐐癸紝緇堢偣錛屾潈閲嶏紝鑺傜偣鏁板拰杈規(guī)暟
int result_s[MAXEDGE],result_e[MAXEDGE];//鍒嗗埆涓哄瓨鍌ㄦ渶灝忕敓鎴愭爲鐨勮搗鐐癸紝緇堢偣
int max_weight,id[MAXEDGE];

void make_set(int x)
{
    p[x]
=x;
    rank[x]
=0;
}


int find_set(int x)

    
if(p[x]!=x)
        p[x]
=find_set(p[x]);
    
return p[x];
}


void Union(int x,int y)
{
    x
=find_set(x);
    y
=find_set(y);
    
if(rank[x]>rank[y])
        p[y]
=x;
    
else if(rank[x]<rank[y])
        p[x]
=y;
    
else if(rank[x]==rank[y])
    
{
        p[x]
=y;
        rank[y]
++;
    }

}


bool cmp(int i,int j)//鐢ㄤ簬sort鍑芥暟
{
    
return weight[i]<weight[j];
}

void Kruskal()
{
    
int i,min,index=0,count=0,k=0;
    
    max_weight
=0;
        
for(i=1;i<=VNum;i++)
          make_set(i);
    
        sort(id,id
+ENum,cmp);//瀵規(guī)墍鏈夎竟榪涜鎺掑簭錛屾敞鎰廼d鏁扮粍鐨勫鐢?/span>
    while(true){
      min
=id[index++];
      
if(find_set(start[min])!=find_set(end[min]))//瀵規(guī)瘡鏉¤竟榪涜澶勭悊錛屽鏋滆搗鐐瑰拰緇堢偣涓嶅湪鍚屼竴闆嗗悎鍚堝茍涔?/span>
        Union(start[min],end[min]);
        result_s[k]
=start[min];//淇濆瓨緇撴灉
                result_e[k++]=end[min];
                count
++;
        
if(max_weight<weight[min])
                max_weight
=weight[min];
       }

      
        
if(count==VNum-1break;//褰撹竟鏁扮瓑浜庤妭鐐規(guī)暟-1鐨勬椂鍊欒〃紺哄凡緇忓畬鎴?/span>
    }

}






int main()
{
    
int i;
    cin
>>VNum>>ENum;
    
for(i=0;i<ENum;i++){
        cin
>>start[i]>>end[i]>>weight[i];
        id[i]
=i;
    }

        Kruskal();
        cout
<<max_weight<<endl<<VNum-1<<endl;
        
for(i=0;i<VNum-1;i++)
       cout
<<result_s[i]<<" "<<result_e[i]<<endl;
   
        
return 0;
}




]]>
久久婷婷五月综合97色 | 久久精品国产99久久久古代| 97久久精品无码一区二区天美| 狠狠色丁香久久婷婷综合图片| 欧美伊人久久大香线蕉综合69| 久久人人爽人人爽AV片| 久久se精品一区二区影院| 精品久久久久久国产牛牛app| 成人a毛片久久免费播放| 国产精品免费久久久久久久久| 国产精品青草久久久久福利99| 久久久免费观成人影院| 四虎国产精品免费久久| 综合久久一区二区三区| 精品久久久久久国产| 久久精品国产亚洲精品2020| 久久国产精品久久久| 久久国产成人| 伊人久久大香线蕉综合影院首页| 亚洲精品乱码久久久久久按摩| 久久亚洲精品成人av无码网站| 97久久香蕉国产线看观看| 国产成人无码精品久久久免费 | 久久九九久精品国产免费直播| 久久久久久久精品成人热色戒| 久久精品无码专区免费东京热 | 久久综合伊人77777| 伊人久久大香线蕉无码麻豆| 久久精品国产AV一区二区三区| 波多野结衣中文字幕久久| 久久久久18| 精品久久无码中文字幕| 久久精品国产99久久久香蕉| 久久亚洲精品无码aⅴ大香| 国内精品伊人久久久久| 亚洲伊人久久综合中文成人网| 久久99国产综合精品免费| 欧美久久亚洲精品| 青青热久久综合网伊人| 久久人人添人人爽添人人片牛牛 | 久久亚洲欧美日本精品|