hdu1102 最小生成树
来源:互联网 发布:淘宝增值服务是什么 编辑:程序博客网 时间:2024/06/06 03:20
/* 思路:水题,直接先将连接起来的边处理掉,将他们连接到一个集合 用并查集,其余的就是克鲁斯卡尔了*/#include<stdio.h>#include<string.h>#include<stdlib.h>#include<vector>#include<algorithm>using namespace std;struct edge{ int from,to,w;};int n,m;vector<edge>edges;int map[101][101]; int top; int pre[101];void addedge(int x,int y,int w){ edge v={x,y,w}; edges.push_back(v);}bool cmp(edge a,edge b){ return a.w<b.w;}int find(int x){ if(x==pre[x]) { return x; } else { pre[x]=find(pre[x]); return pre[x]; }}void kluska(){ int sum=0; for(int i=0;i<edges.size();i++) { edge v=edges[i]; int f1=find(v.from); int f2=find(v.to); if(f1!=f2) { pre[f2]=f1; top--; sum+=v.w; } if(top==1) break; } printf("%d\n",sum);}int main(){ while(scanf("%d",&n)!=EOF) { edges.clear(); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { scanf("%d",&map[i][j]); } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(map[i][j]!=0) { addedge(i,j,map[i][j]); //printf("aa"); } } } int q; scanf("%d",&q); sort(edges.begin(),edges.end(),cmp); for(int i=1;i<=n;i++) { pre[i]=i; } top=n; for(int i=1;i<=q;i++) { int x,y; scanf("%d%d",&x,&y); int f1=find(x); int f2=find(y); if(f1!=f2) { pre[f2]=f1; top--; } } kluska(); }}
阅读全文
0 0
- hdu1102最小生成树
- hdu1102 最小生成树
- hdu1102 最小生成树
- hdu1102 最小生成树
- HDU1102 prim 最小生成树
- hdu1102 kruscal最小生成树
- hdu1102 Constructing Roads 最小生成树+prim
- hdu1102 Constructing Roads 最小生成树Prim
- HDU1102 Constructing Roads 最小生成树
- hdu1102 Constructing Roads 最小生成树Prim
- Hdu1102 - Constructing Roads - 最小生成树
- HDU1102 Constructing Roads 【最小生成树Prim】
- HDU1102 Constructing Roads(最小生成树)
- hdu1102(Constructing Roads)--prim最小生成树
- HDU1102 Constructing Roads(最小生成树)
- HDU1102 Constructing Roads 最小生成树
- hdu1102 Constructing Roads------最小生成树
- HDU1102 Constructing Roads (最小生成树)
- BSGS&扩展BSGS
- 2017多校2 1004 Puzzle
- java锁学习笔记
- bootstrap轮播插件
- 字典的并集
- hdu1102 最小生成树
- 【学习笔记】熟悉并使用TypeScript的命名空间namespace
- 项目实战之使用Servlet+JSP+XML(EL表达式版)实现联系人功能
- OpenMV 简介
- Zookeeper(四)配置与命令
- ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法
- (10)Scrum中的计划会议
- C、C++、Java、JS(长期贴)
- Scala基础入门(三)使用Scala IDE编写第一个Scala程序