wikioi 1078 最小生成树
来源:互联网 发布:人工智能会毁灭人类吗 编辑:程序博客网 时间:2024/06/14 06:14
#include<cstdio>#include<cstdlib>const int maxn=102;const int maxm=10002;int n,m;int parent[maxn],ans;int head[maxm],tail[maxm],w[maxm];int find(int a){if(parent[a]==a)return a;parent[a]=find(parent[a]);return parent[a];}void Union(int a,int b){parent[find(b)]=find(a);}void swap(int *a,int *b){int tmp=*a;*a=*b;*b=tmp;}void sort(int l,int r){int key=w[rand()%(r-l+1)+l];int i=l,j=r;while(i<=j){while(w[i]<key)i++;while(w[j]>key)j--;if(i<=j){swap(&w[i],&w[j]);swap(&head[i],&head[j]);swap(&tail[i],&tail[j]);i++;j--;}}if(l<j)sort(l,j);if(i<r)sort(i,r);}int main(){scanf("%d",&n);for(int i=1;i<=n;i++)parent[i]=i;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){m++;scanf("%d",&w[m]);head[m]=i;tail[m]=j;}}sort(1,m);for(int i=1;i<=m;i++){int u=head[i];int v=tail[i];if(find(u)==find(v))continue;ans+=w[i];Union(u,v);}printf("%d",ans);return 0;}
0 0
- wikioi 1078 最小生成树
- wikioi p1078 最小生成树
- 【wikioi】1078最小生成树 floyd 40分C源码
- 【wikioi】1078最小生成树 prim 100分C源码
- wikioi-天梯-通过初赛-最小生成树-1078:最小生成树
- 【wikioi】1078最小生成树 floyd 改 仍40分代码
- wikioi-天梯-通过初赛-最小生成树-1231:最优布线问题
- 1078 最小生成树
- 1078 最小生成树
- wikioi 最小乘车费用
- 1078 最小生成树 -- prime
- 【codevs 1078】最小生成树
- 【codevs 1078】 最小生成树
- 【codevs 1078】最小生成树
- 【codevs 1078】最小生成树
- codevs 1078 最小生成树
- CODEVS 1078最小生成树
- CODEVS 1078 最小生成树
- 数据库设计说明书-机房收费系统
- 黑马程序员-->21_银行管理系统
- 今天心情不错,早早完成了任务。
- wikioi 1365 浴火银河星际跳跃
- Android的布局介绍
- wikioi 1078 最小生成树
- lock的初始化值
- HDU2178猜数字
- Securing Solr on Tomcat access using a user account
- boost.python的嵌入
- 机房收费系统之 写文档总结
- wikioi 1069 关押罪犯
- wikioi 1295 N皇后问题
- c++学籍管理系统v1.10