*最小生成树
来源:互联网 发布:淘宝卖假货封店 编辑:程序博客网 时间:2024/06/04 18:56
今天是2017/5/22,DCDCBigBig的第七篇博文
kruskal
//用并查集实现#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;struct edge{ int u,v,w;}a[10001];bool cmp(edge e1,edge e2){ return e1.w<e2.w;}int fu,fv,n,m,u,v,w,tot=0,ans=0,fa[10001];int ff(int u){ return fa[u]==u?fa[u]:ff(fa[u]);}void add(int u,int v,int w){ a[++tot].u=u; a[tot].v=v; a[tot].w=w;}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ scanf("%d%d%d",&u,&v,&w); add(u,v,w); } for(int i=1;i<=n;i++){ fa[i]=i; } sort(a+1,a+n+1,cmp); for(int i=1;i<=m;i++){ fu=ff(a[i].u); fv=ff(a[i].v); if(fu!=fv){ ans+=a[i].w; fa[fu]=fv; } } printf("%d",ans); return 0;}
prim
#include<iostream>#include<cstring>#include<cstdio>#include<cmath>int n,m,u,v,w,minn,minx,ans=0,map[1001][1001],mst[100001],lc[100001];using namespace std;void prim(){ for(int i=2;i<=n;i++){ lc[i]=map[1][i]; mst[i]=1; } mst[1]=0; for(int i=2;i<=n;i++){ minn=2147483647; for(int j=2;j<=n;j++){ if(lc[j]<minn&&lc[j]!=0){ minn=lc[j]; minx=j; } } ans+=minn; lc[minx]=0; for(int j=2;j<=n;j++){ if(map[minx][j]<lc[j]){ lc[j]=map[minx][j]; mst[j]=minx; } } }}int main(){ memset(map,0x7f,sizeof(map)); scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){ scanf("%d%d%d",&u,&v,&w); map[u][v]=w; map[v][u]=w; } prim(); printf("%d",ans); return 0;}/*6 10 1 2 6 1 3 1 1 4 5 2 3 5 2 5 3 3 4 5 3 5 6 3 6 4 4 6 2 5 6 6 */
以
哇第一句念完了(害怕)
阅读全文
0 0
- 最小比例 最小生成树
- 最小生成树&&次最小生成树
- 最小生成生成树计数
- 树+最小生成树
- 最小生成树
- 最小生成树 MST
- 最小生成树Kruskal
- kruskal 最小生成树
- 最小生成树
- 最小生成树
- 最小生成树
- 最小生成树
- 最小生成树 MST
- 最小生成树问题
- 最小生成树
- 最小生成树
- 最小生成树
- 最小生成树
- Spring Web MVC
- [leetcode]581. Shortest Unsorted Continuous Subarray
- 【JavaSE系列-基础篇3】——面向对象编程概念之继承
- Struts2中StrutsPrepareAndExecuteFilter源码浅析
- jdbc hibernate(session) jpa (entityManager ) spring-data-jpa mybatis完全混用
- *最小生成树
- 测试人员使用idea+git查看代码逻辑
- RCNN总结
- 国际象棋棋盘
- 棋盘问题
- Hibernate中的一级缓存和二级缓存
- 551. Student Attendance Record I
- linux(ubuntu)挂载远程目录到本地
- leetcode(168)Excel Sheet Column Title 简单题