[hoj 1632]Jungle Roads[Kruskal最小生成树模板题]
来源:互联网 发布:135 139 445端口 编辑:程序博客网 时间:2024/04/30 00:39
题意:
求最小生成树的边长和.
#include <cstdio>#include <vector>#include <algorithm>using namespace std;const int MAXN = 30;int f[MAXN];int n;typedef struct edge{ int u,v,w; edge(){} edge(int _u, int _v, int _w):u(_u),v(_v),w(_w){}}edge;vector<edge> g;bool cmp(edge a, edge b){ return a.w<b.w;}int find_set(int x){ if(f[x]!=x) f[x] = find_set(f[x]); return f[x];}int Kruskal(){ sort(g.begin(),g.end(),cmp); for(int i=0;i<n;i++) f[i] = i; int ans = 0; for(int i=0;i<g.size();i++) { int u = g[i].u, v = g[i].v; u = find_set(u), v = find_set(v); if(u==v) continue; f[u] = v; ans += g[i].w; } return ans;}int main(){ while(scanf("%d",&n)==1 && n) { g.clear(); for(int i=0,m;i<n-1;i++) { char c; scanf(" %c %d",&c,&m); for(int j=0,w;j<m;j++) { scanf(" %c %d",&c,&w); g.push_back(edge(i, c-'A', w)); } } printf("%d\n",Kruskal()); }}
- [hoj 1632]Jungle Roads[Kruskal最小生成树模板题]
- POJ1251 Jungle Roads(最小生成树,Kruskal)
- Jungle Roads 最小生成树(kruskal)
- HDU 1301 Jungle Roads (最小生成树/模板题)
- POJ 1251-Jungle Roads 最小生成树Kruskal
- hdu 1301 Jungle Roads(最小生成树Kruskal)
- POJ-1251-Jungle Roads-最小生成树-Kruskal算法
- poj1251 Jungle Roads 最小生成树,kruskal算法
- HDU 1301 Jungle Roads (最小生成树)kruskal
- HDU 1301 Jungle Roads (Kruskal求最小生成树)
- hdu 1301 Jungle Roads(最小生成树kruskal)
- HDOJ 1301 Jungle Roads 最小生成树 kruskal && prim
- 杭电 1301 Jungle Roads 【最小生成树&&Kruskal】
- POJ 1251 Jungle Roads(最小生成树kruskal)
- HDU 1301 Jungle Roads(最小生成树Kruskal)
- poj 1251 Jungle Roads (最小生成树--kruskal)
- Jungle Roads Kruskal模板
- Jungle Roads(最小生成树)
- Ubuntu12.04安装Oracle11G
- Uboot 移植较好的文章
- (二)启动组件:intent
- hdu4438 Hunters
- TI DSP中几种软件滤波算法的比较
- [hoj 1632]Jungle Roads[Kruskal最小生成树模板题]
- BNU Word Amalgamation
- Android--Loaders
- JS微信打飞机游戏(三)
- hdu4528之搜索
- hdu 4608 I-number
- hdu 4432 Sum of divisors
- POJ 3667 Hotel
- 【HDOJ】1395 -> 2^x mod n = 1