最小生成树
来源:互联网 发布:微信 知乎 编辑:程序博客网 时间:2024/06/06 10:06
前言
最小生成树的使用范围应该不大,但还是常用的。
Prim
code :
struct Prim{ bool used[M]; int mincost[M]; int cost[M][M]; void solve(){//O(n log m) mcl(mincost,63); mcl(used,0); mincost[1]=0; int res=0; while(1){ int v=-1; REP(i,1,n) if(!used[i] && (v==-1 || mincost[i]<mincost[v]))v=i; if(v==-1)break; used[v]=1; res+=mincost[v]; REP(i,1,n) mincost[i]=min(mincost[i],cost[v][i]); } } }Prim;
Kruskai
code :
struct Kruskai{//O(n log m) struct edge{ int from,to,cost; bool operator<(const edge&_)const{ return cost<_.cost; } }es[M<<1]; int fa[M];//并查集 int Find(int x){return fa[x]==x?x:fa[x]=Find(fa[x]);} void solve(){ sort(es+1,es+1+m);//按照边权从小到大排序 REP(i,1,n)fa[i]=i; int res=0,cnt=0; REP(i,1,m){ int x=es[i].from,y=es[i].to; int fx=Find(x),fy=Find(y); if(fx!=fy){ fa[fy]=fx; res+=es[i].cost; cnt++; if(cnt==n-1)break; } } } }Kruskai;
小结:享受能敲到最小生成树的题目吧…
阅读全文
0 0
- 最小比例 最小生成树
- 最小生成树&&次最小生成树
- 最小生成生成树计数
- 树+最小生成树
- 最小生成树
- 最小生成树 MST
- 最小生成树Kruskal
- kruskal 最小生成树
- 最小生成树
- 最小生成树
- 最小生成树
- 最小生成树
- 最小生成树 MST
- 最小生成树问题
- 最小生成树
- 最小生成树
- 最小生成树
- 最小生成树
- Date() 时间的一个 format 格式化函数
- 自己编译android版chrome,支持ppapi插件
- 记录一次项目经历,关于stm32的“共地”
- Python安装其他包、工具、库的方法总结
- 简单工厂模式
- 最小生成树
- 习题6.1
- windows上安装nlopt库/使用lib /def:... 命令
- Spring知识转载
- 【1701H1】【穆晨】【171107】连续第二十八天总结
- 图解CSS3核心技术与案例实战(第二章 CSS3选择器)
- 二叉树
- Mac osx开发环境搭建
- java事件监听机制中的事件、监听器接口、处理方法、事件源