#include<cstdio>
#include<vector>
#include<cstring>
#include<set>
#define maxn 5050
#define fi first
#define se second
using namespace std;
typedef pair<int,int> PII;
vector <PII> s[maxn];
int map[][];
int low_cost[maxn],zou[maxn],n,m,x,y,val,zhong,mi,ans;
int up(int x,int y,int val)
{
for(int i=;i<s[x].size();i++)
{
if(s[x][i].fi==y )
{
if( s[x][i].se>val)
{
s[x][i].se=val;
}
return ;
}
}
return ;
}
main(){
// freopen("data.in","r",stdin);
scanf("%d%d",&n,&m);
memset(low_cost,/,sizeof(low_cost));
// memset(map,127/3,sizeof(map));
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&val);
if(x==y) continue;
// map[x][y]=min(map[x][y],val);
// map[y][x]=min(map[y][x],val);
if(up(x,y,val))
up(y,x,val);
else
{
s[x].push_back(PII(y,val));
s[y].push_back(PII(x,val));
}
}
for(int i=;i<s[].size();i++)
{
low_cost[s[][i].fi]=s[][i].se;
}
/* for(int i=2;i<=n;i++)
{
low_cost[i]=min(low_cost[i],map[1][i]);
}*/
zou[]=;
zhong=;
for(int qwer=;qwer<n;qwer++)
{
int f=;
mi=;
for(int i=;i<=n;i++)
{
if(low_cost[i]<mi && zou[i]==)
{
mi=low_cost[i];
zhong=i;
f=;
}
}
if(f==)
{
printf("orz");
return ;
}
ans+=mi;
zou[zhong]=;
for(int i=;i<s[zhong].size();i++)
{
if(zou[s[zhong][i].fi]==) continue;
low_cost[s[zhong][i].fi]=min(low_cost[s[zhong][i].fi],s[zhong][i].se);
} /* for(int i=1;i<=n;i++)
{
if(map[zhong][i]<low_cost[i])
low_cost[i]=map[zhong][i];
}*/
}
printf("%d",ans);
}

prim 模板的更多相关文章

  1. HDU1875+Prim模板

    https://cn.vjudge.net/problem/HDU-1875 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府 ...

  2. HDU 1223 还是畅通工程(最小生成树prim模板)

    一个很简单的prim模板,但虽然是模板,但也是最基础的,也要脱离模板熟练打出来 后期会更新kruskal写法 #include<iostream> #include<cstdio&g ...

  3. Kruskal && Prim模板

    1. Kruskal(并查集模板): /* Kruskal:并查集实现,记录两点和距离,按距离升序排序,O (ElogE) */ struct Edge { int u, v, w; bool ope ...

  4. prim模板题

    题目链接:http://acm.hrbeu.edu.cn/index.php?act=problem&id=1223 #include <cstdio> #include < ...

  5. prim模板

    ]; int n; ][]; ]; int prim(){ int i,j,mi,v; ;i<n;i++){ d[i]=map[][i]; vis[i]=; } ;i<=n;i++){ m ...

  6. 最小生成树(kruskal模版 Prim模板)

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2144&cid=1186 最小生成树,最重要的是了解思想 稠密图用Prim,稀疏图用Kru ...

  7. poj 1258 Agri-Net prim模板 prim与dijkstra的区别

    很裸地求最小生成树的题目.题意就不多说了,最重要的就是记录一下学会了prim算法. 初学prim,给我的第一感觉就是和dijkstra好像啊,感觉两者的区别还是有的: 1:prim是求最小生成树的算法 ...

  8. 最小生成树模板【kruskal & prim】

    CDOJ 1966 Kruskal 解法 时间复杂度O(mlogm) m为边数,这里主要是边排序占时间,后面并查集还好 #include <cstdio> #include <cst ...

  9. 最小生成树(次小生成树)(最小生成树不唯一) 模板:Kruskal算法和 Prim算法

    Kruskal模板:按照边权排序,开始从最小边生成树 #include<algorithm> #include<stdio.h> #include<string.h> ...

随机推荐

  1. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_07 Collections工具类_2_Collections集合工具类的方法

    默认规则一般都是升序排序 再来创建一个字符串的数组 排序后,按照升序输出结果 自定义类型排序 创建一个Person类,getter和setter 有参构造和无参构造 重写toString的方法 传对象 ...

  2. python中的包和文件夹的区别

    python的模块,就不得不说包(package),package是module的集合,在一个package中有很多的module, 还是以之前的index.py与baiduHq.py模块为案例,说明 ...

  3. spring Cloud 之 Eureka、Feign、Hystrix、Zuul、Config、Bus

    一.服务发现——Netflix Eureka Eureka包含两个组件: Eureka Server和Eureka Client 1.创建Eureka Server服务端 (1).引入依赖 父工程po ...

  4. Smashing Nodejs 读书笔记(二)

    了不起的Node.js:将JavaScript进行到底 书名:SMASHING Node.js : JavaScript Everywhere 原作者:(美)劳奇 Rauch.G 译者:赵静 出版日期 ...

  5. Java容器框架总结(一)

    本篇根据<Java编程思想> 第11章 持有对象 整理,总结Java容器框架中常用集合类及接口的特点及使用场景. (一)总结 1)数组将数字与对象联系起来:可以保存基本类型的数据:一旦生成 ...

  6. 手把手教你用Pytorch-Transformers——部分源码解读及相关说明(一)

    一.简介 Transformers是一个用于自然语言处理(NLP)的Python第三方库,实现Bert.GPT-2和XLNET等比较新的模型,支持TensorFlow和PyTorch.本文介对这个库进 ...

  7. python 操作ssh登录

    import paramiko #创建SSH对象 ssh = paramiko.SSHClient() #把要连接的机器添加到known_hosts文件中 ssh.set_missing_host_k ...

  8. 《剑指offer》面试题14 调整数组顺序使奇数位于偶数前面 Java版

    (输入整数数组,使所有奇数位于前半部分,所有偶数位于后半部分.) 我的方法:想到用两个下标分别表示奇数和偶数的界线,一个在开头,一个在末尾,判断每一个数字的类别,然后将它放入对应的范围内,移动下标,直 ...

  9. Forbidden (CSRF token missing or incorrect.):错误解决办法

    在JS中,使用post方法提交数据到后台,出现错误: Forbidden (CSRF token missing or incorrect.):.........; 解决办法: 在页面导入JS的位置, ...

  10. 入手node

    一.安装node(查询使用npm) 二.安装淘宝镜像(查询使用cnpm,安装淘宝镜像之后下载速度会更快) 三.安装相关资料时,在预安装的文件夹使用: shift + 右键, 打开命令行窗口,进入终端