POJ 1251 最小生成树prim算法
2011-12-21 00:35
676 查看
还是最小生成树prim算法,套用的浙大模板
#include <iostream> #define MAXN 28 #define inf 10000 typedef int elem_t; using namespace std; elem_t prim(int n,elem_t mat[MAXN][MAXN],int* pre){ elem_t min[MAXN],ret=0; int v[MAXN],i,j,k; for (i=0;i<n;i++) min[i]=inf,v[i]=0,pre[i]=-1; for (min[j=0]=0;j<n;j++){ for (k=-1,i=0;i<n;i++) if (!v[i]&&(k==-1||min[i]<min[k])) k=i; for (v[k]=1,ret+=min[k],i=0;i<n;i++) if (!v[i]&&mat[k][i]<min[i]) min[i]=mat[pre[i]=k][i]; } return ret; } int main(){ int n,m,i,j,result,q; int pre[MAXN]; int distance[MAXN][MAXN]; char s,e; while(cin>>n,n!=0){ for (i = 0;i < n;i++) for (j = 0;j < n;j++) { distance[i][j] = inf; } for(i = 0;i < n-1;i++){ cin>>s>>m; for(j = 0;j < m;j++){ cin>>e>>q; distance[s -'A'][e -'A'] = distance[e -'A'][s -'A'] = q; } } result = prim(n,distance,pre); cout << result<<endl; } return 0; }
相关文章推荐
- poj 1251 最小生成树 prim算法
- POJ 1251 最小生成树prim算法
- POJ-1251 Jungle Roads(最小生成树 prim算法)
- 最小生成树(prim算法)--poj1258
- poj 2421(最小生成树 Prim算法)
- POJ1251 JungleRoads 最小生成树
- poj 1251 Jungle Roads 最小生成树
- POJ 1251 Jungle Roads(最小生成树水题) - from lanshui_Yang
- POJ-1789 Truck History(prim算法,最小生成树)
- POJ-1287 Networking(最小生成树 prim算法)
- POJ-2349 Arctic Network(最小生成树 prim算法)
- Jungle Roads 【poj-1251】 【最小生成树】
- poj----(1251)Jungle Roads(最小生成树)
- POJ_1789(Truck History )(最小生成树(普里姆prim算法))
- POJ 1251 Jungle Roads(最小生成树裸prim)
- poj 1251 Jungle Roads(最小生成树)(基础)
- poj 2485 prim算法最小生成树
- POJ 2485 Highways 最小生成树 prim算法
- POJ1258 Agri-Net(最小生成树,prim算法)
- POJ 2485 Highways(最小生成树Prim算法)