#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. myeclipse 2015 myeclipse2010破解共存

    1.高版本选择bling版本,低版本选择profession版本2.用高版本的公钥替换低版本的公钥3.先破解低版本的后破解高版本的4.最后用高版本的替换低版本的文件

  2. 【MM系列】SAP 主要模块及简介

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 主要模块及简介   前言部分 ...

  3. Matlab入门基础

    matlab入门篇,一些基础用法记一下~ M语言是解释型语言 ​ who:查看当前变量 ​ whoes:查看当前变量及其维数.所占字节数等. ​ clear: 清除所有变量 ​ clear + 变量名 ...

  4. chapter2

    Chapter2 Tip1 静态工厂方法代替构造器 公有的静态方法,只是一个返回类实例的静态方法. 静态工厂方法的优势: 优势一: 有名称,如果构造器本身没有正确的描述被返回的对象,具有适当名称的静态 ...

  5. 建立 Active Directory域 ----学习笔记

    第五章 建立 Active Directory域 1.工作组和域的理解 ​ a.工作组是一种平等身份环境,各个计算机之间各个为一个独立体,不方便管理和资源共享. ​ b.域环境一般情况下满足两类需求, ...

  6. (4.31)quotename函数

    操作sql server尤其是写存储过程时,要用到各种各样的函数,今天就总结一个quotename()的用法. 1.语法: quotename(‘character_string’[,‘quote_c ...

  7. 【转载】研发应该懂的binlog知识(上)

    ---------------------------------------------------------------------------------------------------- ...

  8. overflow的量两种模式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. HTML文件头部元素作用

    1.DOCTYPE的作用 DOCTYPE是document type(文档类型)的缩写.<!DOCTYPE html>声明位于文档最前面,主要作用是告诉浏览器的解析器使用哪种HTML规范或 ...

  10. 实现单选框点击label标记中的文字也能选中

    实例: <label for="man"> <input type="radio" value="男" name=&quo ...