邻接表 邻接矩阵来存储图的信息相对于非完全图,会浪费大量的空间,同时在求最短路径的时候也会有多余的计算浪费时间。 使用邻接表可以节约这些浪费的时间。 这里介绍的是用数组模拟的邻接表: 定义begin[MAXN],end[MAXN],dis[MAXN],first[MAXN],next[MAX...
分类:
其他好文 时间:
2014-07-23 15:24:07
阅读次数:
277
本文出自:http://blog.csdn.net/svitter
分析:vector是STL模板中的容器。可以利用其性质来构建邻接表。
定义:
#include
#define MAXN 10000
//max n of a tree or graph
//if is a tree, n / 2 is OK ;
using namespace std;
typedef ve...
分类:
其他好文 时间:
2014-07-21 11:27:55
阅读次数:
228
最短路+DP(个人用的SPFA+完全背包)
做了一上午……开始想用SPFA+BFS。但是写了半天越写越乱,放弃了。
就想到了是不是可以当作背包问题(背出病了……)把鞋子可以使用的次数当作背包容量。做完全背包。
先N次SPFA把 各点的最短距离算出来,其实比较适合Floyd。(个人用vector实现伪邻接表,然后SPFA)
然后SPFA更新路径的时候,当鞋子使用次数不...
分类:
其他好文 时间:
2014-07-18 11:18:36
阅读次数:
279
之前我们介绍过图的邻接矩阵存储法,它的空间和时间复杂度都是N2,现在我来介绍另外一种存储图的方法:邻接表,这样空间和时间复杂度就都是M。对于稀疏图来说,M要远远小于N2。先上数据,如下。4 51 4 94 3 81 2 52 4 61 3 7第一行两个整数n m。n表示顶点个数(顶点编号为1~n),...
分类:
其他好文 时间:
2014-07-15 09:06:33
阅读次数:
282
一条标准的拓扑题解。
我这里的做法就是:
保存单亲节点作为邻接表的邻接点,这样就很方便可以查找到那些点是没有单亲的节点,那么就可以输出该节点了。
具体实现的方法有很多种的,比如记录每个节点的入度,输出一个节点之后,把这个节点对于其他节点的入度去掉,然后继续查找入度为零的点输出。这个是一般的做法了,效果和我的程序一样的。
有兴趣的也可以参考下我这种做法。
#...
分类:
其他好文 时间:
2014-07-12 22:15:05
阅读次数:
308
原题: FZU 2169http://acm.fzu.edu.cn/problem.php?pid=2169这题貌似有两种解法,DFS和SPFA,但是DFS怎么都RE,SPFA也要用邻接表表示边,用向量表示的话会TLE,而且用SPFA有一个异或,就是题目说要沿最短路走到都城,但是SPFA是走最短路去...
分类:
其他好文 时间:
2014-07-09 15:37:19
阅读次数:
226
解法有很多奇葩的地方,比如可以到达终点再跳回去再跳回来(比如有两个点)。。。。反正就是不能有最短路,不过没关系,算法都能给出正确结果
思想:和求最短路上的点套路一样,spfa先正着求一次,再反着求一次最短路,然后枚举每条边找dist_zheng[i] + len + dist_fan[j]的第二小值即可!注意不能用邻接矩阵,那样会MLE,应该用邻接表
/*
poj 3255
...
分类:
数据库 时间:
2014-07-09 11:28:13
阅读次数:
245
Topological Sort题解。本题是简单的入门题目。
Topological Sort的思想很简单,就是按没有入度的点,先输出,然后删除这个点的出度。然后输出下一组没有入度的点。
如何实现也是很简单的:
这里使用邻接表,建图的时候反过来建图,建立一个入度邻接表。
然后使用一个vis数组,记录访问过的节点,也可以根据这个信息知道哪些是已经输出的点,这个时候这些点的入度可以不算为当前入...
分类:
其他好文 时间:
2014-07-08 12:46:41
阅读次数:
282