POJ 1258 Agri-Net最小生成树 prim
2014-08-06 20:31
369 查看
题意:给n*n矩阵,表示第i个农场到第j个农场的距离
裸地最小生成树
裸地最小生成树
#include <iostream> #include<stdio.h> #include<string> #include<cstring> #include<cmath> #include<queue> #define N 222 int map ; int vis ; using namespace std; #define INF 2222222 int dis ; int n; int v; void prim() { __int64 ans=0;int pos; memset(vis,0,sizeof vis); for(int i=1;i<=n;i++)//从某个点开始进行添加 dis[i]=map[i][1]; dis[1]=0;vis[1]=1; for(int i=1;i<n;i++)//再更新n-1次 { int min=INF;//找出最小权值并记录位置 for(int j=1;j<=n;j++) if(!vis[j]&&min>dis[j]) { min=dis[j]; pos=j; } vis[pos]=1;//标记该点已添加 ans+=min;//最小权值相加 for(int j=1;j<=n;j++)//更新权值 if(!vis[j]&&dis[j]>map[j][pos]) dis[j]=map[j][pos]; } printf("%I64d\n",ans); } int main() { while(~scanf("%d",&n)) { memset(map,INF,sizeof map); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { scanf("%d",&v); map[i][j]=map[j][i]=v; } prim(); } return 0; }
相关文章推荐
- POJ 1258 - Agri-Net(最小生成树' Prim)
- poj 1258 Agri-Net(prim求最小生成树)
- POJ 1258 Agri-Net (最小生成树 prim)
- POJ 1258 Agri-Net (prim 最小生成树)
- POJ 1258:Agri-Net:典型prim最小生成树(3)
- POJ1258 Agri-Net(Prim求解最小生成树)
- POJ 1258 Agri-Net 最小生成树 Prim 算法
- POJ 1258 - Agri-Net(最小生成树 Prim)
- POJ 1258 Agri-Net (最小生成树/Prim)
- POJ 1258 Agri-Net(最小生成树-Prim)
- poj 1258 Agri-Net(prim求最小生成树)
- poj1258 - Agri-Net (经典邻接矩阵 求最小生成树) (Prim & Kruskal)
- POJ 1258:Agri-Net(最小生成树&&prim)
- POJ 1258 Agri-Net 最小生成树 prim
- POJ 1258:Agri-Net Prim最小生成树模板题
- POJ-1258 Agri-Net(最小生成树[Prim])
- POJ1258 Agri-Net(简单的prim最小生成树)
- POJ 1258 Agri-Net(最小生成树 Prim+Kruskal)
- POJ 1258-Agri-Net(最小生成树prim)
- POJ 1258 Agri-Net(最小生成树-Prim)