hdu 1863(prim&kruskal)
来源:互联网 发布:c语言迷宫最短路径 编辑:程序博客网 时间:2024/05/17 23:23
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863
prim:
#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define INF 0x3fffffffint graph[101][101];int visit[101];int flag[101];int sum;int n,m;void prim(){ sum=0; int pox,i,mix; visit[1]=1; for(i=1;i<=m;++i) flag[i] = graph[1][i]; int p = m-1; while(p--) { mix=INF; for(i=1;i<=m;++i) { if(mix>flag[i] && !visit[i]) { mix = flag[i]; pox = i; } } // printf("pox = %d\n",pox); if(mix == INF) { printf("?\n"); return; } sum += mix; visit[pox] = 1; for(i=1;i<=m;++i) { if(flag[i]>graph[pox][i] && !visit[i]) { flag[i] = graph[pox][i]; } } } printf("%d\n",sum);}int main(){ int i,j; while(~scanf("%d%d",&n,&m)) { if(n==0) break; memset(visit,0,sizeof(visit)); memset(flag,0,sizeof(flag)); for(i=1; i<=m; ++i) { for(j=1;j<=m;++j) { if(i==j) graph[i][j] = 0; else graph[i][j] = INF; } } int a,b,c; for(i=1; i<=n; ++i) { scanf("%d%d%d",&a,&b,&c); graph[a][b] = c; graph[b][a] = c; } prim(); } return 0;}
kruskal:
#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int n,m,sum,cnt;struct edge{ int a; int b; int w;}M[5000];int father[110];int cmp(edge a, edge b){ return a.w < b.w;}void init(){ int i; for(i=1;i<=m;++i) { father[i] = i; }}int findFather(int x){ return father[x]==x?x:findFather(father[x]);}void kruskal(){ int i; int x; int y; for(i=1;i<=n;i++) { x = findFather(M[i].a); y = findFather(M[i].b); if(x!=y) { father[M[i].a] = father[M[i].b]; ++cnt; sum+= M[i].w; } if(cnt==m) { printf("%d\n",sum); return ; } } printf("?\n");}int main(){ int i; while(~scanf("%d%d",&n,&m)) { if(n==0) break; cnt=1; sum=0; for(i=1;i<=n;++i) { scanf("%d%d%d",&M[i].a,&M[i].b,&M[i].w); } init(); sort(M+1,M+1+n,cmp); kruskal(); } return 0;}
0 0
- hdu 1863(prim&kruskal)
- HDU-#1863 畅通工程(Kruskal & Prim)
- HDU 1863--畅通工程【Prim && kruskal】
- hdu 1863 畅通工程【kruskal & prim】
- hdu 1863 畅通工程 kruskal || prim
- hdu 1863 畅通工程(prim+kruskal)
- HDU 1863 畅通工程 (prim + kruskal)
- HDU 1233 prim kruskal最小生成树
- HDU 1879 最小生成树 prim + kruskal
- hdu Eddy's pitrue prim and kruskal
- hdu 1102 Constructing Roads (prim 、kruskal)
- HDU-#1102 Constructing Roads(Prim & Kruskal)
- HDU 1223--还是畅通工程【prim && kruskal】
- hdu 3371 Connect the Cities【kruskal&prim】
- HDU 1102:Constructing Roads【Kruskal & Prim】
- hdu 1102 Constructing Roads(kruskal || prim)
- hdu 1233 还是畅通工程(prim||kruskal)
- HDU 3371 Prim或kruskal实现
- easyUI 数据表格-datagrid
- 欢迎使用CSDN-markdown编辑器
- iOS开发7-分页栏与选取器
- 25. Remove Element
- 关于在Ubuntu下安装Java
- hdu 1863(prim&kruskal)
- 基于皮尔森相关系数的协同过滤算法
- DIRECTORY_SEPARATOR
- LeetCode---Rotate List
- mysql 数据查询语句优化 null
- 我的OpenCV学习笔记(12):VideoCapture类
- 链表c++实现
- 最近的学习
- 图中节点的度数