杭电 1863 最小生成数
来源:互联网 发布:type3软件下载 编辑:程序博客网 时间:2024/06/05 01:04
点击打开链接
法一:prim算法,之前Wa了,后来改成kruskal算法过了,然后几天后讲过同学的提醒指导了错误的地方,
#include <iostream>#include <algorithm>#include <stdio.h>#include <string.h>#define N 200#define Y 33333110using namespace std;int mapp[N][N],mark[N],dist[N],n,m,sum;int prim(int v0){ memset(mark,0,sizeof(mark)); int i,j,minn,k,sum=0; for(i=1;i<=n;i++) dist[i]=mapp[v0][i]; mark[v0]=1; dist[v0]=0; for(i=1;i<n;i++){ minn=Y;k=-1; for(j=1;j<=n;j++) if(mark[j]==0&&minn>dist[j]){ minn=dist[j]; k=j; } mark[k]=1; if(k==-1){ return Y;//若没找到最小值标号,说明图不连通,要返回最大值会主函数进行判断 } if(k!=-1){ sum+=dist[k]; for(j=1;j<=n;j++) if(mark[j]==0&&mapp[k][j]<dist[j]) dist[j]=mapp[k][j]; } } return sum;}int main(){ int i,j,a,b,c,y; while(cin>>m&&m){ cin>>n; for(i=1;i<=n;i++) for(j=1;j<=n;j++) mapp[i][j]=Y; for(i=1;i<=m;i++){ cin>>a>>b>>c; if(mapp[a][b]>c) mapp[a][b]=mapp[b][a]=c; } y=prim(1); if(y==Y)//不连通时 cout<<"?"<<endl; else cout<<y<<endl; } return 0;}法二:kruskal算法
#include <iostream>#include <algorithm>#include <stdio.h>#include <string.h>#define N 200#define Y 33333110using namespace std;struct node{ int a,b,c;}mapp[N*6];int fa[N*6];int com(node t1,node t2){ return t1.c<t2.c;}int findfa(int x){ if(x!=fa[x]) fa[x]=findfa(fa[x]); return fa[x];}int main(){ int n,m,i,fx,fy,res; while(cin>>m&&m){ cin>>n; res=0; for(i=1;i<=n;i++) fa[i]=i; for(i=1;i<=m;i++) cin>>mapp[i].a>>mapp[i].b>>mapp[i].c; sort(mapp+1,mapp+m+1,com); for(i=1;i<=m;i++){ fx=findfa(mapp[i].a); fy=findfa(mapp[i].b); if(fx!=fy){ fa[fx]=fy; res+=mapp[i].c; --n; } } if(n>1) cout<<"?"<<endl; else cout<<res<<endl; } return 0;}
0 0
- 杭电 1863 最小生成数
- 【杭电 oj】1863畅通工程 (最小生成数 模板)
- 【最小生成树+Prim】杭电 hdu 1863 畅通工程
- 【最小生成树+kruskal】杭电 hdu 1863 畅通工程
- 杭电 1863 畅通工程 【最小生成树&&Kruskal】
- 畅通工程--杭电1863之最小生成树prim
- 杭电ACM1162(最小生成树)
- 杭电ACM1233(最小生成树)
- 杭电ACM1863(最小生成树)
- 杭电1879题 最小生成树
- 杭电1233最小生成树kruskal
- 最小生成数模板
- 最小生成数
- 【杭电oj】1863 - 畅通工程(最小生成树,模版)
- 杭电 1233 最小生成树 kruskal()算法
- 杭电 1162 kruskal()算法 最小生成树
- 【最小生成树+Prim】杭电 hdu 1102 Constructing Roads
- 杭电1162 Eddy's picture 最小生成树
- 无名管道总结
- EventBus的初步使用
- 404请求错误 location.href
- 欢迎使用CSDN-markdown编辑器
- 【EHCache】EHCache技术文档-下载地址
- 杭电 1863 最小生成数
- JAVA循环的一些问题和创建对象的问题解答
- 【spring 5】AOP:spring中对于AOP的的实现
- static 常量区 数据区 堆栈 生命周期 作用域 c++ 以及脚本语言的区别
- deepin安装vsftpd(仅安装篇)
- 复习(数据结构):链表:c++:stl
- hdu-2480-Steal the Treasure-贪心+缩点
- header( "Content-Type: application/vnd.ms-excel")
- UML类图中类与类之间的关系及画法