Prim算法模板
来源:互联网 发布:动态规划算法的条件 编辑:程序博客网 时间:2024/05/21 03:16
Prim算法模板
#include<cmath>#include<ctime>#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#include<algorithm>#include<iomanip>#include<vector>#include<string>#include<bitset>#include<queue>#include<map>#include<set>using namespace std;typedef long long ll;inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch<='9'&&ch>='0'){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}return x*f;}void print(int x){if(x<0)putchar('-'),x=-x;if(x>=10)print(x/10);putchar(x%10+'0');}const int N=5010,M=200100,inf=0X3f3f3f3f;int last[N],ecnt;struct EDGE{int to,nt,val;}e[M<<1];inline void add(int u,int v,int val){e[++ecnt]=(EDGE){v,last[u],val};last[u]=ecnt;}struct node{int pos,val;friend bool operator <(const node &x,const node &y){return x.val>y.val;}};priority_queue<node>q;bool vis[N];int dis[N];int main(){int n=read(),m=read();for(int i=1,u,v,val;i<=m;++i){u=read();v=read();val=read();add(u,v,val);add(v,u,val);}ll ans=0;for(int i=2;i<=n;++i)q.push((node){i,inf});q.push((node){1,0});memset(dis,0X3f,sizeof(dis));dis[1]=0;while(!q.empty()){while(!q.empty()&&vis[q.top().pos])q.pop();if(q.empty())break;int u=q.top().pos;vis[u]=1;if(dis[u]==inf){puts("orz");return 0;}ans+=dis[u];for(int i=last[u];i;i=e[i].nt)if(!vis[e[i].to]&&e[i].val<dis[e[i].to]){dis[e[i].to]=e[i].val;q.push((node){e[i].to,e[i].val});}}cout<<ans<<endl;return 0;}/*4 51 2 21 3 21 4 32 3 43 4 37*/
阅读全文
0 0
- Prim算法模板
- prim算法模板
- (MST-Prim算法模板)
- prim算法模板
- Prim算法模板
- prim 算法加模板
- Prim算法模板
- poj1258 prim算法(模板)
- Prim算法和Kruskal算法模板
- 最小生成树Prim算法模板
- 最小生成树-prim算法模板
- hdu1233最小生成树 prim算法模板
- POJ 2349 (Prim算法模板)
- 最小生成树(prim算法模板)
- prim算法模板—最小生成树
- prim算法模板 (最小生成树)
- 最小生成树-Prim算法(模板)
- 次小生成树模板-prim算法
- 产假计算器
- ORA-12541: TNS: 无监听程序
- MyBatis传参与parameterType
- 抓娃娃机的工作原理
- 韦东山-wifi驱动
- Prim算法模板
- 安卓手机PDF阅读器哪个好用?收下这份PDF阅读器使用方法吧
- 异步服务端 boost asio
- Redis服务操作命令
- Nginx+PHP (Fastcgi)常见502和504问题解决
- 虚拟DOM
- 数据结构与算法简介
- unity 单例
- 尝试着在CSDN中发图片