prim算法+优化 模版
来源:互联网 发布:通过网线共享网络 编辑:程序博客网 时间:2024/05/17 08:57
#include<stdio.h> //大概要这些头文件#include<string.h>#include<queue>#include<vector>#include<algorithm>using namespace std;typedef pair<int,int> pii;int head[30],next[200],point[200],val[200],size,dist[30]; //前向星及dist数组bool vis[30];void add (int a,int b, int v){ //加边及去重 int i; for(i=head[a];~i;i=next[i]){ if(point[i]==b){ if(val[i]>v)val[i]=v; return; } } point[size]=b; val[size]=v; next[size]=head[a]; head[a]=size++;}struct cmp{ //重载小根堆 bool operator()(pii a,pii b){ return a.first>b.first; }};void prim(int s){ //prim函数,传入图中一点 int i,ans=0; memset(dist,-1,sizeof(dist)); memset(vis,0,sizeof(vis)); priority_queue<pii,vector<pii>,cmp>q; for (i=head[s];~i;i=next[i]){ dist[point[i]]=val[i]; q.push(make_pair(dist[point[i]],point[i])); } dist[s]=0; vis[s]=1; while(!q.empty()){ pii u=q.top(); q.pop(); if(vis[u.second])continue; vis[u.second]=1; ans+=u.first; for(i=head[u.second];~i;i=next[i]){ int j=point[i]; if(!vis[j]&&(dist[j]>val[i]||dist[j]==-1)){ dist[j]=val[i]; q.push(make_pair(dist[j],j)); } } } printf("%d\n",ans);}prim算法优化
1 0
- prim算法+优化 模版
- Prim算法模版
- prim算法模版
- prim算法模版 hdu 1875
- prim 算法优化
- Prim算法及其优化
- prim算法,转过来当模版用
- 优先队列优化prim算法
- prim算法的堆优化。
- 堆优化的prim算法
- 最小生成树Prim算法 堆优化
- prim算法(未优化版)
- prim 算法
- Prim算法
- Prim算法
- prim算法
- Prim算法
- Prim算法。
- linux网络命令 traceroute
- 统计数组的逆序对
- 张正友相机标定文章:A Flexible New Technique for Camera Calibration
- eclipse安装svn插件
- Android学习之路------github上的常用Android特效
- prim算法+优化 模版
- Reconstruct Itinerary
- Swift简单实现URL生成二维码,并保存到本地相册
- 约瑟夫问题
- MQ--为什么使用它?
- 剑指Offer:二叉树的镜像
- lightoj 1214 - Large Division 大数对小数取余
- eclipse neno中tomcat配置servers locations地址的文件
- When I delete a java project containing 200.000 code from eclipse,there is a prolem : An unexpected