poj1251 Jungle Roads
来源:互联网 发布:mac版都有哪些游戏 编辑:程序博客网 时间:2024/05/01 06:59
思路:模板题..由于SB把初始化写成了并查集的初始化找了好久错...
#include <cstdio>#include <queue>#include <cstring>#include <iostream>#include <cstdlib>#include <algorithm>#include <vector>#include <map>#include <string>#include <set>#include <ctime>#include <cmath>#include <cctype>using namespace std;#define maxn 100#define LL long longint cas=1,T;int pre[maxn];struct Edge{int u,v;int dist;Edge(){}Edge(int u,int v,int dist):u(u),v(v),dist(dist){}bool operator < (const Edge &rhs)const{return dist < rhs.dist;}};int Find(int x){return pre[x] == -1? x: pre[x]=Find(pre[x]);}int n,m;Edge edges[maxn];void init(){m=0;memset(pre,-1,sizeof(pre));//edges.clear(); for (int i = 0;i<maxn;i++){edges[i].u=0;edges[i].v=0;edges[i].dist=0;}}void AddEdge(int u,int v,int dist){edges[m++]=Edge(u,v,dist);}int Kruskal(){int sum = 0;int cnt = 0;sort(edges,edges+m);for (int i = 0;i<m;i++){//printf("%d\n",i);int fx = edges[i].u;int fy = edges[i].v;//printf("%d %d",u,v);if (Find(fx)!=Find(fy)){sum+=edges[i].dist;//printf("%d\n",sum);pre[Find(fx)] = Find(fy);if (++cnt >=n-1){//puts("YES");break;} }}return cnt>=n-1?sum:-1;}int main(){//freopen("in","r",stdin);//scanf("%d",&T);while (scanf("%d",&n) && n){init();for (int i = 0;i<n-1;i++){char c;int mm;cin >> c >> mm;//cout << c << " " << mm;int uu = c-'A';for (int j=0;j<mm;j++){ int d; cin >> c >>d; int vv = c-'A'; AddEdge(uu,vv,d);}}int ans = Kruskal();printf("%d\n",ans);}//printf("time=%.3lf",(double)clock()/CLOCKS_PER_SEC);return 0;}
0 0
- poj1251 Jungle Roads
- poj1251 - Jungle Roads
- POJ1251-Jungle Roads
- poj1251 Jungle Roads
- poj1251 Jungle Roads
- POJ1251 Jungle Roads(kru)
- poj1251 Jungle Roads
- Jungle Roads(POJ1251)(primer)
- POJ1251 Jungle Roads
- POJ1251 Jungle Roads
- HDU1301&&POJ1251 Jungle Roads
- POJ1251 Jungle Roads
- poj1251 Jungle Roads
- poj1251 Jungle Roads
- poj1251 Jungle Roads
- POJ1251 Jungle Roads Prim算法
- poj1251 hdu 1301 Jungle Roads
- POJ1251- Jungle Roads(Kruskal)
- Android 高仿墨迹天气“我”页面
- php 接口
- java 图片数字图像处理之图片缩小
- ios编程之ReactiveCocoa框架
- 大神的viewpagerindicator慢速总结(不定期更新)
- poj1251 Jungle Roads
- 查查资料,明天总结
- 子页面与父页面的调用问题
- linux开启多个svn
- Trap in bash
- R语言学习笔记之<运行R时给如何参数>
- PHP下Unix时间戳与日期互转(解决1970年前及2038年后问题)
- 44543
- hdu 2062 Subset sequence