HDU -- 1233 还是畅通工程(mst)
来源:互联网 发布:程序员发展前景 编辑:程序博客网 时间:2024/06/05 17:27
题目大意:给出村庄数目n,及n*(n-1)/2条道路,求连通所有村庄的最小花费。
代码实现:prim
#include<stdio.h>#include<string.h>int n,p[110][110],visit[110],dis[110];void Prim(){ int k,sum=0,mincost; memset(visit,0,sizeof(visit)); for(int i=1;i<=n;i++) dis[i]=p[1][i]; visit[1]=1; for(int i=1;i<n;i++){ mincost=1e9,k=-1; for(int j=1;j<=n;j++){ if(visit[j]==0&&dis[j]<mincost){ k=j; mincost=dis[j]; } } if(k==-1) break; visit[k]=1; sum+=mincost; for(int j=1;j<=n;j++){ if(visit[j]==0&&dis[j]>p[k][j]) dis[j]=p[k][j]; } } printf("%d\n",sum);}int main(){ while(~scanf("%d",&n),n){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) p[i][j]=1e9; } int a,b,c; for(int i=0;i<n*(n-1)/2;i++){ scanf("%d%d%d",&a,&b,&c); p[a][b]=p[b][a]=c; } Prim(); } return 0;}Kruskal:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=4950;int fa[102];int n,m;struct Node{ int v1,v2,val;}edge[maxn];int cmp(Node a,Node b){ return a.val<b.val;}int Find(int a){ return (a==fa[a])?fa[a]:Find(fa[a]);}void Merge(int a,int b){ int x=Find(a); int y=Find(b); fa[y]=x;}void kruskal(){ for(int i=1;i<=n;i++) fa[i]=i; int i,j,sum=0; for(i=0,j=0;i<n-1&&j<m;j++){ if(Find(edge[j].v1)==Find(edge[j].v2)) continue; Merge(edge[j].v1,edge[j].v2); sum+=edge[j].val; i++; } printf("%d\n",sum);}int main(){ while(~scanf("%d",&n),n){ m=n*(n-1)/2; for(int i=0;i<m;i++) scanf("%d%d%d",&edge[i].v1,&edge[i].v2,&edge[i].val); sort(edge,edge+m,cmp); kruskal(); }}
0 0
- HDU -- 1233 还是畅通工程(mst)
- HDU 1233 还是畅通工程 (MST)
- hdu 1233 还是畅通工程(MST)
- [MST]HDU 1233还是畅通工程
- HDU - 1233 还是畅通工程(Kruskal - MST)
- HDU 1233 还是畅通工程(MST裸题)
- hdu 1233 还是畅通工程 (MST,Prim)
- 还是畅通工程(MST)
- HDU -- 1863 畅通工程 (mst)
- HDU -- 1789 继续畅通工程(mst)
- hdu 1863 畅通工程(MST,prim)
- hdu 1233(还是畅通工程)
- 还是畅通工程 (HDU 1233)
- 【1233】还是畅通工程 (HDU)
- HDU:1233 还是畅通工程(kruskal)
- HDU 1233 还是畅通工程(模板)
- hdu 1233 (还是畅通工程)
- hdu 1233 还是畅通工程(prim)
- AOSP+GMS CTS-CDD(兼容标准)
- Java 字符编码工具类 [UTF-8 编码实现]
- lscpu,lspci,lsblk,lsscsi命令
- ExpandableListView讲解
- 我的书目
- HDU -- 1233 还是畅通工程(mst)
- SharePoint JS Link 之(四)JSlink常见例子和代码下载
- 关于@override报错的问题
- Web_PHP_DedeCMS_字段替换模块;
- IPVS基于应用层任意偏移字段HASH值的负载均衡算法
- Android自动化测试之UIAutomator
- mysql源码阅读笔记 (1) 底层物理页面的数据结构
- 文件读写两种方式
- Android为整个应用切换第三方字体