对于prim的最直接理解
来源:互联网 发布:seo专业知识 编辑:程序博客网 时间:2024/06/05 08:29
#include<bits/stdc++.h>
using namespace std;
int n,m;
int po[1010][1010],vis[1010];
int lowcost[1010];
#define mi 0x3f3f3f
#define inf 0x3f3f3f
void prim()
{
int flag=0,sum=0,k;
vis[1]=1;
for(int i=1;i<=n;i++)
{
lowcost[i]=po[i][1];
}
for(int i=2;i<=n;i++)
{
int Min=mi;
for(int j=1;j<=n;j++)
{
if(!vis[j]&&lowcost[j]<Min)//找目标点的周围的最小权(未遍历过的)
{
Min=lowcost[j];
k=j;
}
}
if(Min==mi)
{
flag=1;
break;
}
sum+=Min;
vis[k]=1;
for(int j=1;j<=n;j++)//更新一下数组 从数组里面挑出来的最小的就是(未遍历过的)
{
if(!vis[j]&&lowcost[j]>po[j][k])
{
lowcost[j]=po[j][k];
}
}
}
if(!flag)
{
cout<<sum<<endl;
}
else
{
cout<<"-1"<<endl;
}
}
int main()
{
while(cin>>n>>m)
{
int i,w,u,v;
memset(vis,0,sizeof(vis));
memset(po,inf,sizeof(po));
for(i=0;i<m;i++)
{
cin>>u>>v>>w;
po[u][v]=po[v][u]=w;
}
prim();
}
return 0;
}
using namespace std;
int n,m;
int po[1010][1010],vis[1010];
int lowcost[1010];
#define mi 0x3f3f3f
#define inf 0x3f3f3f
void prim()
{
int flag=0,sum=0,k;
vis[1]=1;
for(int i=1;i<=n;i++)
{
lowcost[i]=po[i][1];
}
for(int i=2;i<=n;i++)
{
int Min=mi;
for(int j=1;j<=n;j++)
{
if(!vis[j]&&lowcost[j]<Min)//找目标点的周围的最小权(未遍历过的)
{
Min=lowcost[j];
k=j;
}
}
if(Min==mi)
{
flag=1;
break;
}
sum+=Min;
vis[k]=1;
for(int j=1;j<=n;j++)//更新一下数组 从数组里面挑出来的最小的就是(未遍历过的)
{
if(!vis[j]&&lowcost[j]>po[j][k])
{
lowcost[j]=po[j][k];
}
}
}
if(!flag)
{
cout<<sum<<endl;
}
else
{
cout<<"-1"<<endl;
}
}
int main()
{
while(cin>>n>>m)
{
int i,w,u,v;
memset(vis,0,sizeof(vis));
memset(po,inf,sizeof(po));
for(i=0;i<m;i++)
{
cin>>u>>v>>w;
po[u][v]=po[v][u]=w;
}
prim();
}
return 0;
}
阅读全文
0 0
- 对于prim的最直接理解
- 最直接的理解ip和端口的关系
- servlet的作用到底是什么?最直接的理解
- TCP三次握手和四次握手最直接的理解
- TCP三次握手和四次握手最直接的理解
- CMake与Make最简单直接的理解
- 最朴素的prim算法
- 对于继承的理解
- 对于volatile的理解
- 对于分布式的理解
- 对于volatile的理解
- 对于const的理解
- 对于scull_read的理解
- 对于分页的理解
- 对于视图的理解
- 对于HBase的理解
- 对于STL的理解
- 对于覆盖的理解
- git 回滚到指定版本并推送到远程分支
- 人工智能、5G时代、物联网、网络安全……全球互联网大咖口中的高频词将如何影响我们生活?
- 1017. A除以B (20)
- 蓝桥杯 算法提高 排列数
- 30本关于asp.net相关的经典书籍推荐
- 对于prim的最直接理解
- php 计算多个集合的笛卡尔积
- 高斯函数原理及高斯模糊
- JQuery.Ajax之错误调试帮助信息
- 理解回调函数
- arm体系结构总结笔记2-存储系统综述
- windows连接到linux上的FTP服务器进行文件传输
- python中使用xlrd、xlwt操作excel表格详解
- Mycat单库分表实践