图论基本算法2之最小生成树(prim算法)
来源:互联网 发布:易语言软件更新源码 编辑:程序博客网 时间:2024/06/08 18:43
prim算法是具有动态规划思想的最小生成树算法,在NOIP中十分重要;
参考代码:
<span style="font-size:18px;">#include<iostream>#include<algorithm>using namespace std;const int N=10005;int g[N][N],n,closedge[N],ans(0);int min(){int k,min=0x7fffff;for (int i=0;i<n;i++) if (closedge[i]&&closedge[i]<min){ min=closedge[i]; k=i; }return k;}void mst(int x){for (int i=0;i<n;i++) closedge[i]=g[x][i];int v;for (int i=1;i<n;i++){v=min();ans+=closedge[v];closedge[v]=0;for (int j=0;j<n;j++)if (closedge[j]&&g[v][j]<closedge[j]) closedge[j]=g[v][j];}}int main(){int m;cin>>n>>m;memset(g,0x7f,sizeof(g));for (int i=0;i<n;i++) g[i][i]=0;for (int i=0,begin,end,wei;i<m;i++){cin>>begin>>end>>wei;g[begin][end]=g[end][begin]=wei;}mst(0);cout<<ans<<endl;return 0;}</span>注意代码中并没有考虑无法生成树的情况,考虑这种情况时只需在mst函数中加一个变量num在ans前后统计节点数,然后与总结点数比较即可。
0 0
- 图论基本算法2之最小生成树(prim算法)
- 图之 最小生成树 Prim算法
- 最小生成树之prim算法2
- 最小生成树算法之Prim算法
- 最小生成树算法之Prim算法
- 最小生成树算法之prim算法
- 图论之最小生成树(Prim普里姆算法)
- 最小生成树(2)--Prim算法
- 图之最小生成树-Prim算法和Kruskal算法
- 图算法之最小生成树算法(prim)
- 图基本算法 最小生成树 Prim算法(邻接表/邻接矩阵+优先队列STL)
- 最小生成树之Prim算法
- 最小生成树算法之prim
- 最小生成树之prim算法
- 【算法】最小生成树之prim
- 最小生成树之prim算法
- 最小生成树算法之Prim
- 最小生成树之prim算法
- C++递归用法
- 图论基本算法1之深搜(邻接链表)
- The 2013 Arab Collegiate Programming Contest 题解
- java 编译项目
- java web之国际化
- 图论基本算法2之最小生成树(prim算法)
- 计划
- 关于字体路径Windows和Linux差异(putenv('GDFONTPATH=c:\windows\fonts'))
- bug查找
- awk 用法
- BOM中的navigator对象
- C#持续Ping
- 图论基本算法2之最小生成树(Dijkstra算法)
- 第五十一题 和为n 连续正数序列