poj 1258 【最小生成树】【prim】【纯模板】
2013-06-14 16:07
316 查看
就是模板- -
熟练起来
熟练起来
#include<iostream> using namespace std; const int inf = 0x3f3f3f3f; int p[100][100]; int vis[100]; int lowc[100]; void input(int n){ for(int i=0;i<n;i++) for(int j=0;j<n;j++) p[i][j]=inf; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ cin>>p[i][j]; } } } int prim(int n){ int i,j,rp; int minc,res=0; memset(vis,0,sizeof(vis)); vis[0]=1; for(i=1;i<n;i++) lowc[i]=p[0][i]; for(i=1;i<n;i++){ minc=inf; rp=-1; for(j=0;j<n;j++){ if(0==vis[j]&&minc>lowc[j]){ minc=lowc[j]; rp=j; } } if(inf==minc)return -1; res+=minc; vis[rp]=1; for(j=0;j<n;j++){ if(0==vis[j]&&lowc[j]>p[rp][j]) lowc[j]=p[rp][j]; } } return res; } int main(){ int n; while(cin>>n){ input(n); cout<<prim(n)<<endl; } }
相关文章推荐
- POJ 1258:Agri-Net Prim最小生成树模板题
- POJ 1258:Agri-Net Prim最小生成树模板题
- POJ 1278 Agri-Net 最小生成树模板题(Prim 与 Kruskal)
- poj1258 prim最小生成树
- POJ 1258 Agri-Net (最小生成树+Prim)
- POJ 1258 Agri-Net 最小生成树 prim && kruskal
- poj-1258-最小生成树kruskal模板
- POJ 1258 Agri-Net (prim 最小生成树)
- poj 1258 最小生成树 prim+优先队列
- POJ 1258 Agri-Net 最小生成树 prim
- POJ1258 Agri-Net(简单的prim最小生成树)
- poj1258prim最小生成树
- 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)
- POJ 1258 Agri-Net (最小生成树/Prim)
- POJ 1258 Agri-Net 最小生成树 Prim
- POJ 1258 Agri-Net(最小生成树-Prim)