无向图最小生成树
来源:互联网 发布:被网络禁的四十大禁书 编辑:程序博客网 时间:2024/06/06 17:43
第2 - M + 1行:每行3个数S E W,分别表示M条边的2个顶点及权值。(1 <= S, E <= N,1 <= W <= 10000)
9 141 2 42 3 83 4 74 5 95 6 106 7 27 8 18 9 72 8 113 9 27 9 63 6 44 6 141 8 8
37
利用并查集加贪心来写
#include<cstdio>#include<algorithm>using namespace std;int f[1001],sum,num;struct A{ int s,e,w;}g[50000];bool cmp(A a,A b){ return a.w<b.w;}int find(int x){ return f[x]==x?x:f[x]=find(f[x]);}void merge(int x,int y,int z){ x=find(x); y=find(y); if(x!=y) { num++; sum+=z; f[x]=y; }}int main(){ int n,m; while(~scanf("%d %d",&n,&m)) { for(int i=1;i<=n;i++) f[i]=i; sum=num=0; for(int i=0;i<m;i++) scanf("%d %d %d",&g[i].s,&g[i].e,&g[i].w); sort(g,g+m,cmp); for(int i=0;i<m&&num<n-1;i++) merge(g[i].s,g[i].e,g[i].w); printf("%d\n",sum); } return 0;}dijkstra算法:#include<cstdio>#include<cstring>#define N 1001#define M 99999999int num[N];int n,m;int tt,sum;int map[N][N];int p[N];void dijkstra(){ int i,j; memset(p,0,sizeof(p)); for(i=1;i<=n;i++) num[i] = map[1][i]; p[1]=1; for(i=1; i<n; i++) { int min = M,k; for(j=1; j<=n; j++) { if(p[j] == 0 && num[j]<min) { min = num[j]; k=j; } } tt = tt + min; p[k] = 1; for(j=1; j<=n; j++) { if(p[j]==0 && num[j]>map[k][j]) { num[j] = map[k][j]; } } } printf("%d\n",tt);}int main(){ int T,i,j; int a[1001]; while(scanf("%d%d",&n,&m)!=EOF) { tt = 0; for(i=1; i<=n; i++) { for(int j=1; j<=n; j++) map[i][j] = M; map[i][i] = 0; } int x,y,z; for(i=0; i<m; i++) { scanf("%d%d%d",&x,&y,&z); map[x][y] = z; map[y][x] = z; } dijkstra(); } return 0;}
阅读全文
0 0
- 1212 . 无向图最小生成树
- 1212 无向图最小生成树
- 无向图最小生成树
- 无向图最小生成树
- 无向图最小生成树
- 无向图最小生成树
- 1212 无向图最小生成树
- 图4---无向图得到最小生成树
- prime算法求无向图的最小生成树
- 无向图转换成最小生成树
- 贪心算法_无向图最小生成树*
- 无向网图的最小生成树--普里姆算法
- 无向网图的最小生成树---完整代码
- 51nod1212 无向图最小生成树(Prim)
- 无向图的最小生成树(prim算法)
- 51nod 1212 无向图最小生成树
- 51 nod 1212 无向图最小生成树
- 51nod 1212 无向图最小生成树
- 移动端适配之rem
- Mac-系统升级后无法安装其他来源的软件
- LDA线性分类
- [RK3288][Android6.0] 调试笔记 --- 替换默认Launcher
- phpstrom 鼠标滚轮放大缩小字体
- 无向图最小生成树
- 归并排序
- Jenkins在Linux上传文件到windows
- hihocoder 1014 : Trie树
- docker&镜像
- RANSAC 特征匹配算法解析
- 一些扩展kmp的总结
- matplotlib(legend)
- websocke心跳重连