HDU 1301 Jungle Roads 最小生成树
来源:互联网 发布:觉得做程序员越来越烦 编辑:程序博客网 时间:2024/05/17 23:41
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1301
这道题关键是将char类型转换为int类型,然后直接套用Kruskal算法就可以AC了。
char类型-‘A’ 即为int类型,题目已经说明是大写字符,其实无论大小写都行。
代码如下:
#include <iostream>#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <vector>#include <set>#include <map>#include <queue>#include <stack>using namespace std;/*freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);*/int n,m;//n个点,总共有m跳边,单向边int parent[105];//父亲节点struct se{ int x,y,w;}edge[5055];bool emp(se a,se b){ return a.w<b.w;}void UFset(){ for(int i=0;i<=n;i++) parent[i]=i;}int find(int x){ int r=x; while(x!=parent[x]) x=parent[x]; while(r!=x)//剪枝优化 { int j=parent[r]; parent[r]=x; r=j; } return x;}void Kruskal(){ int i,j,count=0,sum=0; UFset();//初始化父亲节点 for(i=0;i<m;i++) { int fx=find(edge[i].x);//x的根节点 int fy=find(edge[i].y);//y的根节点 if(fx!=fy)//两个根节点不相同代表不在一个集合里面,就合并 { count++; parent[fx]=fy; sum+=edge[i].w; if(count==n-1) break; } } printf("%d\n",sum);}int main(){ int i,j; while(cin>>n,n) { m=0; for(i=1;i<n;i++) { char c,v; int k,p; cin>>c>>k; while(k--) { cin>>v>>p; edge[m].w=p; edge[m].x=c-'A';//将char转换为int类型 edge[m].y=v-'A'; m++; } } sort(edge,edge+m,emp);//边从小到大排序 Kruskal(); } return 520;}
- HDU 1301 Jungle Roads 最小生成树
- HDU-1301 Jungle Roads (最小生成树)
- hdu 1301 Jungle Roads(最小生成树Prim算法)
- hdu 1301 Jungle Roads(最小生成树Kruskal)
- hdu 1301——Jungle Roads(最小生成树)
- HDU 1301 Jungle Roads 最小生成树(简单)
- hdu 1301 Jungle Roads (基础最小生成树)
- HDU 1301 Jungle Roads (最小生成树)kruskal
- HDU : 1301 ( Jungle Roads ) 最小生成树mst prim算法
- HDU 1301 Jungle Roads 最小生成树K算法
- hdu 1301(Jungle Roads)(最小生成树模板)
- HDU - 1301 - Jungle Roads (最小生成树!!prim算法!!)
- HDU 1301 Jungle Roads (Kruskal求最小生成树)
- hdu 1301 Jungle Roads(最小生成树kruskal)
- HDU 1301 Jungle Roads(Prim求最小生成树)
- HDU 1301 Jungle Roads prim算法 最小生成树
- HDU-1301 Jungle Roads(最小生成树[Prim])
- hdu 1301 Jungle Roads (最小生成树)
- Eclipse上GIT插件EGIT使用手册
- Android Tab简单学习
- UITextField限制字数的方法
- 【枚举】_Enum笔记
- Ubuntu 9.04安装Intel显卡驱动
- HDU 1301 Jungle Roads 最小生成树
- 【枚举】_类集对Enum的支持笔记
- Git简介
- XML名称空间小结
- jsp,servlet,javabean在web应用中的角色
- Android应用市场和发布流程参考
- Cortex-M3对于GPIO的配置
- 地图基础知识
- Java多线程编程