Prim演算法求最大權,POJ 2485

2022-04-01 08:33:07 字數 747 閱讀 3650

解題報告:

這裡有一點要注意的是,第乙個點時,dis陣列還沒有初始化,還全部為inf。第一次來到更新權時,才把鄰接矩陣的資料存到dis中。

#include #include 

#include

#include

#include

using

namespace

std;

#define n 10005

#define inf 100010

inta[n][n],ans;

bool

vis[n];

intdis[n],n;

bool

prim()

ans=0

;

///從第乙個點搜起。到達自己的權為0

dis[1]=0

;

///搜尋每個節點,加入到集合中來

for(int i=1; i<=n; i++)

}if(tmp==inf) ///

搜尋不成功

vis[k]=true; ///

標記走過

ans=max(ans,dis[k]);

///更新到每個節點的最小權

for(int j=1; j<=n; j++)}}

}int

main()

}prim();

cout

}return0;

}

POJ2421 prim演算法求最小生成樹

題意 鄰接村子裡面所有的村莊,使得道路的總長度最小。分析 由於題意說會有已經通好道路的村莊。我們任然可以利用prim求解最小生成樹,只要把已經通好道路的權值置為0,就行了。view code 1 i m the topcoder2 c3 include 4 include 5 include 6 i...

求最大權二分匹配的KM演算法

最大權二分匹配問題就是給二分圖的每條邊乙個權值,選擇若干不相交的邊,得到的總權值最大。解決這個問題可以用km演算法。理解km演算法需要首先理解 可行頂標 的概念。可行頂標是指關於二分圖兩邊的每個點的乙個值lx i 或ly j 保證對於每條邊w i j 都有lx i ly j w i j 0。如果所有...

poj 3469 isap演算法求最大流

include include define debug ifdef debug define debug printf va args else define debug endif define n 20010 define m 1800000 define max int 0x3fffffff...