Topological Sort题解。本题是简单的入门题目。
Topological Sort的思想很简单,就是按没有入度的点,先输出,然后删除这个点的出度。然后输出下一组没有入度的点。
如何实现也是很简单的:
这里使用邻接表,建图的时候反过来建图,建立一个入度邻接表。
然后使用一个vis数组,记录访问过的节点,也可以根据这个信息知道哪些是已经输出的点,这个时候这些点的入度可以不算为当前入...
分类:
其他好文 时间:
2014-07-08 12:46:41
阅读次数:
282
之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。4 51 4 94 3 81 2 52 4 61 3 7第一行两个整数n m。n表示顶点个数(顶点编号为1~n),...
分类:
其他好文 时间:
2014-07-06 18:22:26
阅读次数:
154
今天收获还算可以把。。今天过了poj1258和poj1753.1258是一个红果果的最小生成树,写了个prim,用的邻接矩阵。当然邻接表不是很会用,回头会研究图算法,短期内会看的。关于prim算法,比较重要的就以下几个点。1.选取一个点,然后据此更新其他节点的low[]信息2.再执行n-1次操作,每...
分类:
其他好文 时间:
2014-07-06 16:46:19
阅读次数:
166
算起来是个并查集问题。
题意是说 有N台电脑,每台电脑能以自身为中心连接D米范围的电脑。
给出N台电脑坐标,针对询问操作,输出是否连通。
我用邻接表存储的,如果两电脑坐标 距离小于他们半径和,存起来,表明这两个点可以连通。
用 online[] 表明是否被修复。 修复之后才可以用并查集合并。
修复操作就启用 online,然后遍历这个点的邻接边,如果也有online 的,...
分类:
Web程序 时间:
2014-07-06 08:10:23
阅读次数:
271
建立一个有向图的邻接表,首先要构思好它的邻接表里面包含哪些结构数据,然后根据哪些数据来建立相应的结构体。但也要注意数据的输入。#include #include #define MAX_SIZE 10typedef struct ArcNode //弧节点结构体{ ...
分类:
其他好文 时间:
2014-07-05 11:14:30
阅读次数:
177
求来回最短路加起来最长的一条。
两次SPFA,然后选某个点的来回最长。(有向图)
Dijkstra+邻接矩阵 比较方便建立 反向图。
我用SPFA+2个邻接表(正图+反图),C++ 32ms。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2014-07-03 16:01:33
阅读次数:
173
英语渣就是这点不好。。。
巨恶心这种描述多的题。。
大意就是求 从一个点出发,到某些点,然后又从那些点返回的距离之和的 最小值。
Dijkstra+邻接矩阵。 正向建图,求出出发距离,然后swap边,求出 返回距离。
注意的是 车可能有重复的。某个点有多少车就需要乘以车的数量。
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-07-02 07:16:49
阅读次数:
253
相信有过开发经验的朋友都曾碰到过这样一个需求。假设你正在为一个新闻网站开发一个评论功能,读者可以评论原文甚至相互回复。 这个需求并不简单,相互回复会导致无限多的分支,无限多的祖先-后代关系。这是一种典型的递归关系数据。 对于这个问题,以下给出几个解决方案,各位客观可斟酌后选择。一、邻接表:依赖父.....
分类:
数据库 时间:
2014-07-01 12:26:49
阅读次数:
312
两次SPFA。求 来 和 回 的最短路之和。
用Dijkstra+邻接矩阵确实好写+方便交换,但是这个有1000000个点,矩阵开不了。
d1[]为 1~N 的最短路。
将所有边的 邻点 交换。
d2[] 为 1~N 的最短路。
所有相加为 所要答案。
忧伤的是用SPFA “HDU 1535” AC了,但是POJ 一样的题 “POJ 1511” 就WA了。
...
分类:
其他好文 时间:
2014-07-01 07:20:32
阅读次数:
206