【codevs 1078】最小生成树
2016-06-20 21:43
351 查看
题解:
kruskal简单应用
kruskal简单应用
#include <iostream> #include <algorithm> using namespace std; struct data { int u,v,w; }e[10001]; int father[101]; void init(int n) { for(int i=1;i<=n;i++) father[i]=i; } int find(int x) { if(x!=father[x]) father[x]=find(father[x]); return father[x]; } void Union(int x,int y) { x=find(x);y=find(y); if(x!=y) father[x]=y; } bool cmp(const data &a,const data &b) { return a.w<b.w; } int n,x,m,tot,k; int main() { cin>>n; init(n); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { cin>>x; if(x) { m++; e[m].u=i;e[m].v=j;e[m].w=x; } } sort(e,e+m+1,cmp); for(int i=1;i<=m;i++) { if(find(e[i].u)!=find(e[i].v)) { Union(e[i].u,e[i].v); tot+=e[i].w; k++; } if(k==n-1) break; } cout<<tot; return 0; }
相关文章推荐
- mybatis_user_guide(8) 日志
- 用Linq 解决 数据的多字段分组统计(VB.net)
- 操作系统:进程管理
- memcpy与memmove的区别
- 微信开发的本地调试环境搭建
- APP开发实战60-Activity启动FLAG
- php中get、post和request的用法
- 《Thinkinginjava》第6章-访问权限控制
- Installing packages into Canopy User Python from the OS command line
- Register-validation.xml常用输入校验
- 关于SpringMVC使用@RequestBody注解接受json格式数据报415错误
- APP开发实战59-Activity启动模式
- php中get和post的区别
- tomcat多实例自动化部署脚本优化
- Java(线性代数--逆序数的求算)
- 替换空格-剑指Offer
- android5.0用UsageStatsManager来获取程序运行时间
- 模式识别(Pattern Recognition)学习笔记(三十四)-- 主成分分析(PCA)
- 学习进度16
- C++与Java之RSA签名与验签