HDU 1863 Kruskal求最小生成树
好久没写博客了写着玩的……
Kruskal这种东西离散都学过……
一句话……
添加当前图权值最小且构不成环的一条边 直到连接所有点……
其他人好多Kruskal的模版 肯定有比我的好的……
就是刷一波存在感……
#include <stdio.h>
#include <algorithm>
#define maxn 101 using namespace std; int vis[maxn];
int num,sum; struct edge{
int a;
int b;
int value;
}p[maxn*maxn]; int find_(int x){
int r=x;
while(r!=vis[r]){
r=vis[r];
}
return r;
} void Kruskal(int x,int y,int z){
int x1=find_(x);
int y1=find_(y);
if(x1!=y1){
vis[x1]=y1;
sum+=z;
num++;
}
} bool cmp(const edge &a, const edge &b){
return a.value < b.value;
} int main(){
int n,m,i;
while(~scanf("%d%d",&n,&m)&&n){
for(i=;i<=m;i++)
vis[i]=i;
for(i=;i<n;i++)
scanf("%d%d%d",&p[i].a,&p[i].b,&p[i].value);
sum=;
num=;
sort(p,p+n,cmp);
for(i=;i<n&&num<m-;i++)
Kruskal(p[i].a,p[i].b,p[i].value);
if(num==m-) printf("%d\n",sum);
else printf("?\n");
}
return ;
}
HDU 1863 Kruskal求最小生成树的更多相关文章
- HDU 1863 畅通工程 最小生成树
思路: 比较典型的最小生成树的题目了..在这里用求最小生成树的经典算法K(Kruskal)算法和P(Prim)算法.我的 K 算法用的是结构体来存图,P 算法用的是邻接矩阵来存图,K算法的复杂度是O( ...
- Kruskal求最小生成树
#include<bits/stdc++.h> using namespace std; ; ; const int inf = 0x3f3f3f3f; ; typedef long lo ...
- hdu 1233 还是畅通project(kruskal求最小生成树)
还是畅通project Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- Codeforces 609E (Kruskal求最小生成树+树上倍增求LCA)
题面 传送门 题目大意: 给定一个无向连通带权图G,对于每条边(u,v,w)" role="presentation" style="position: rel ...
- Prim和Kruskal求最小生成树
Prim: 算法步骤: 1.任意结点开始(不妨设为v1)构造最小生成树: 2.首先把这个结点(出发点)包括进生成树里, 3.然后在那些其一个端点已在生成树里.另一端点还未在生成树里的所有边中找出权最小 ...
- ZOJ 1586 QS Network Kruskal求最小生成树
QS Network Sunny Cup 2003 - Preliminary Round April 20th, 12:00 - 17:00 Problem E: QS Network In the ...
- HDU 1863 畅通工程(最小生成树,prim)
题意: 给出图的边和点数,要求最小生成树的代价,注:有些点之间是不可达的,也就是可能有多个连通图.比如4个点,2条边:1-2,3-4. 思路: 如果不能连通所有的点,就输出‘?’.之前以为每个点只要有 ...
- HDU 1863 畅通project (最小生成树是否存在)
题意 中文 入门最小生成树 prim大法好 #include<cstdio> #include<cstring> using namespace std; const int ...
- 最小生成树之 prim算法和kruskal算法(以 hdu 1863为例)
最小生成树的性质 MST性质:设G = (V,E)是连通带权图,U是V的真子集.如果(u,v)∈E,且u∈U,v∈V-U,且在所有这样的边中, (u,v)的权c[u][v]最小,那么一定存在G的一棵最 ...
随机推荐
- canvas实现画板功能(渐变、动画、阴影...)
刚刚在博客园落户了,希望能在这认识更多大神,希望能和大家交好朋友. 闲来无事,把以前用canvas写的画板代码改进了一番,用Html5提供的表单标签给其 加了一个选择颜色的功能,因此发现了该标签的一个 ...
- 【IIS】windows2008 ii7 设置访问网站提示帐号密码登录
3个步骤: 1.添加windows身份验证: windows2008默认是不启用的,需要我们自己去启动,在管理工具 - 服务器管理- 角色 ,拉下去,下面有个[添加角色服务],安全性- Windows ...
- JavaScript忍者秘籍——运行时代码求值
1. 代码求值机制 JavaScript中,有很多不同的代码求值机制. ● eval()函数 ● 函数构造器 ● 定时器 ● <script>元素 - 用eval()方法进行求值 作为定义 ...
- swift 经典代码收集 和 赏析
代码1:protocol PickableEnum { var displayName: String { get } var permanentID: String { get } static v ...
- jquery获取radio的值
Html代码是 <label><input type="radio" name="proofing" value="1"& ...
- IIS7添加mp4 MINE类型报错:无法写入配置文件
解决方法: 方法一: 可能是由于文件为只读属性,所以修改网站文件访问权限,把此文件夹或者文件的写入权限给了这个用户. 方法二: 可能由于网站目录所在的分区是fat32格式,所以要把网站目录放在NTFS ...
- rune is alias of int32
I think chendesheng's quote gets at the root cause best: Go uses a lot of signed values, not just fo ...
- MySql-授权,使远程主机能够访问自己的数据库
转自:http://www.jb51.net/article/85218.htm GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'mys ...
- my_query()的引号注意
$sql="insert into lianxi values(null,'$usename','$email',$sex,$age,'$chusheng','$guanji')" ...
- ubuntu 16.04下搭建web服务器(MySQL+PHP+Apache) 教程
1.开始说明 下面很多可能参照网上其中以为前辈的,但有所改进吧.这些设置可能会有所不同,你需要根据不同情况进行修改. 安装apache2 2.切换管理员身份 在ubuntu中需要用root身份进行操作 ...