![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
zt_1995
这个作者很懒,什么都没留下…
展开
-
并查集
定义: 并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。 集就是让每个元素构成一个单元素的集合,也就是按一定顺序将属于同一组的元素所在的集合合并。主要操作初始化 把每个点所在集合初始化为其自身。 通常来说,这个步骤在每次使用该数据结构时只需要执行一次,无论何种实现方式,时间复杂度均为O(N)。 查找 查找元素所在原创 2015-07-15 22:41:23 · 160 阅读 · 0 评论 -
Kruskal算法
Kruskal算法 步骤 1.先将边从小到大排序 2.将边按从小到大的顺序插入树中 (1)如果边(u,v)中u,v不属于同一个集合中,合并u,v所在的集合,答案加上w。 (2)如果u,v属于同一个集合中,则跳过该条边。 使用并查集维护集合关系克鲁斯卡尔算法(Kruskal’s algorithm)是两个经典的最小生成树算法的较为简单理解的一个。这里面充分体现了贪心算法的精髓。大致的流程可原创 2015-07-15 23:13:47 · 417 阅读 · 0 评论 -
hdu 3790 最短路
最短路径问题Problem Description给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。Input输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点。n和m为0时输入结束。 (1Out原创 2016-01-06 10:03:31 · 243 阅读 · 0 评论 -
hdu1272(并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1272思路: 1、判断所有点是否联通,用边数=顶点数-1 来判断 2、判断有没成环,用并查集来判断两个点是否联通,如果已经联通,则会成环。 3、特判 直接读入空图即,a==0&&b==0 输出Yes代码:#include<cstdio>#include<cstring>const int N=原创 2015-12-25 23:24:34 · 278 阅读 · 0 评论 -
hdu1548 最短路
**A strange lift**Problem DescriptionThere is a strange lift.The lift can stop can at every floor as you want, and there is a number Ki(0 <= Ki <= N) on every floor.The lift have just two buttons: up a原创 2015-12-18 17:15:31 · 447 阅读 · 0 评论 -
hdu2066
一个人的旅行Problem Description虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女……眼看寒假就快到了,这么一原创 2015-12-18 12:22:45 · 322 阅读 · 0 评论 -
hdu 1102 prim算法
**Constructing Roads****Problem Description** There are N villages, which are numbered from 1 to N, and you should build some roads such that every two villages can connect to each other. We say two v原创 2015-12-18 11:31:59 · 242 阅读 · 0 评论 -
poj 3615Cow Hurdles floyd
http://poj.org/problem?id=3615代码:#include<iostream>#include<cstdio>using namespace std;#define Max 1000005int max(int a,int b){return a>b?a:b;}int min(int a,int b){return a<b?a:b;}int a[305][305]原创 2015-07-19 13:06:06 · 307 阅读 · 0 评论