
图论
111111用户昵称不存在00000
这个作者很懒,什么都没留下…
展开
-
拓扑排序->POJ2585
POJ2585 题意: 有一个4*4的显示器,上面可以出现9种2*2的图片,这些图片可以相互覆盖,问输入的图片可否由那九种图片堆叠出来题解 初始化基本信息,拓扑排序判断有无环出现代码:#include <stdio.h>#include <iostream>#include <string.h>#include <string>#include <queue>using na原创 2016-08-03 22:28:09 · 712 阅读 · 0 评论 -
LightOJ1029->Prime
LightOJ1029->Prime题意: 求一棵最大生成树和最小生成树。代码:#include <stdio.h>#include <iostream>#include <string.h>#include <algorithm>using namespace std ;#define INF 0x3f3f3f3f#define MAX 110int n ;bool visi原创 2016-10-09 23:05:10 · 473 阅读 · 0 评论 -
LightOJ1040->最小生成树
LightOJ1040->最小生成树题意: 已知一些房间之间连有线缆,求可以让这些房间连通的前提下,最多能去掉多长的线缆。题解: 记录所有线缆长度,求一棵最小生成树,用总长减去最小生成树的权值和就是答案。#include <stdio.h>#include <iostream>#include <string.h>#include <algorithm>using namespa原创 2016-10-09 23:02:18 · 468 阅读 · 0 评论 -
LCA在线算法ST&&DFS->POJ1330&&POJ1470
LCA在线算法ST&&DFS:在线算法DFS+ST描述(思想是:将树看成一个无向图,u和v的公共祖先一定在u与v之间的最短路径上):(1)DFS:从树T的根开始,进行深度优先遍历(将树T看成一个无向图),并记录下每次到达的顶点。第一个的结点是root(T),每经过一条边都记录它的端点。由于每条边恰好经过2次,因此一共记录了2n-1个结点,用E[1, … , 2n-1]来表示。(2)计算R:用R[i]原创 2016-08-23 16:06:11 · 576 阅读 · 0 评论 -
最短路&&优先队列优化->HDU2544
最短路&&优先队列优化->HDU2544Dijkstra算法思想: (1)在任意时刻,我们都要得到从源点到所有顶点的估算距离,并维持一个顶点集合S,若顶点v在S中,则说明从源点到v的最短路径已知; (2)在每一次将不在S中的顶点v加到S中去时,总是选择从源点到v的估算距离最小的; (3)顶点v加入S中之后,对于所有与v相邻的顶点(不属于S),更新它们的估算距原创 2016-08-09 00:43:39 · 713 阅读 · 0 评论 -
次小生成树->UVA10600
次小生成树->UVA10600次小生成树可由最小生成树换一条边得到算法: 1)先用prim求出最小生成树T,在prim的同时,用一个矩阵maxij[u][v]记录在树中连接u-v的路径中权值最大的边. 2)枚举所有不在T中的边u-v,加入边u-v,删除权值为maxij[u][v]的边,不断枚举找到次小生成树.模板:Prime1()用于求最小生成树,Prime2()用于求次小生成树。#原创 2016-08-08 22:39:39 · 376 阅读 · 0 评论 -
POJ2349->最小生成树
POJ2349->最小生成树题意: 要在n个节点之间建立通信网络,其中m个节点可以用卫星直接连接,剩下的节点都要用线路连接,求剩下这些线路中最大的长度需要多长题解: 明显还是最小生成树的题 如果用Prime算法,该算法现在V1集合中放入任意一个节点,然后每次选取和V1集合中的节点相连的最短的边的另一个节点加入到V1集合。 此时,可以把建成整棵最小生成树的所有边记录在一个数组原创 2016-08-07 23:52:51 · 1247 阅读 · 1 评论 -
POJ1751->最小生成树
POJ1751->最小生成树题意: 有n个城市,已知城市的坐标和已经被连通的城市编号,求能把所有城市都连接起来的最短路径的连通方法。题解: 很明显,这个题是要求一个图的最小生成树,不过要记录并输出路径。 在每次吧一个节点加入到V1集合的时候,记录下来这个节点的横纵坐标即可。代码:#include <stdio.h>#include <iostream>#include <str原创 2016-08-05 23:53:25 · 441 阅读 · 0 评论 -
Havel-Hakimi定理(判断一个序列是否可图)->POJ1659
Havel-Hakimi定理(判断一个序列是否可图)->POJ1659给定一个非负整数序列{dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化。进一步,若图为简单图,则称此序列可简单图化 至于能不能根据这个序列构造一个图,就需要根据Havel-Hakimi定理中的方法来构图。可图化的判定: d1+d2+……dn=0(mod 2)。关于具体图的构造,我们可以简单地把奇数度原创 2016-08-02 00:14:22 · 1558 阅读 · 0 评论 -
POJ1258->最小生成树
题意: 给出一个各个节点之间权值的对应图,求这个图的最小生成树题解: Prime算法的裸题。代码:#include <stdio.h>#include <iostream>#include <string.h>#include <cmath>using namespace std ;#define INF 0x3f3f3f3f#define MAX 110int n ;b原创 2016-08-04 23:57:37 · 373 阅读 · 0 评论 -
最小生成树Prime->HDU1875
最小生成树Prime->HDU1875生成树: 无向图G的一个子图如果是一棵包含G的所有顶点的树,则该子图称为G的生成树。若在生成树中任意增加一条边,将出现回路;减少一条边,则会使之成为非连通图。最小生成树(最小代价生成树): 对无向连通图的生成树,各边总和称为生成树的权,权最小的生成树称为最小生成树。最小生成树的Prime算法: Prime算法采用贪心的思想,先将图中的第一个节点加原创 2016-08-04 22:48:36 · 353 阅读 · 0 评论