
图论
RanTaimu
哥哥姐姐们都说, PHP是全宇宙最好的语言
展开
-
拓扑排序
简单思路:习惯构造一个邻接表(vector[]),将拓扑序大的(即入度小的)作为表头,拓扑序小的压入对应向量中,对于拓扑序相等的,用并查集合并(有需要的话),这样操作的必须为并查集的各个根。知识:1.信息不完整的表现是同时出现两个或两个以上的元素,其入度为0,且其根是自己(因为有可能是=合并后造成的情况)2.出现冲突的表现是出现环了,这样就会造成拓扑排序的元素少于需要排序的原创 2013-09-06 20:28:06 · 852 阅读 · 0 评论 -
POJ 3281-Dining(最大流入门,建图详细解析)
ACM-ICPC 最大流入门题 建图详细解析原创 2014-03-10 15:10:08 · 2350 阅读 · 0 评论 -
最小生成树水题大合集
题目一:hdu - 畅通工程题意:中文题省略思路:裸最小生成树代码:#include "iostream"#include "cstring"#include "string"#include "cmath"#include "queue"#include "cstdio"#include "algorithm"#include原创 2013-11-13 19:45:46 · 3573 阅读 · 0 评论 -
最短路水题大合集
题目一:Silver Cow Party题意:有N个农场 , 每个农场一头牛 , 现在他们要走到第X个农场去参加派对 , 然后返回各自的农场。然后有M条单向路 , 每条路从A到B花费T然后每头牛都会选择最短的路来走一个来回求的是每头牛走的路中的最大值思路:图论水题 , 很裸的最短路算法。算法采用spfa , 构造正反两个图 , 我们知道如果从x点原创 2013-11-06 20:27:11 · 1078 阅读 · 0 评论 -
ZOJ - 1119 SPF
题目: SPF题意:给一个网络(实质是一副无向图),每一个节点为一台计算机,输出:哪一台计算机是割点 , 移去它之后网络被分成了几块思路:无向图求割点套模板,所谓割点(参考):1.如果点v是DFS序列的根节点,则如果v有一个以上的孩子,则v是一个割点。2.如果v不是DFS序列根节点,并且点v的任意后继u能追溯到最早的祖先节点low[u]>=dfn[v原创 2013-09-20 11:58:41 · 732 阅读 · 0 评论 -
hdu 4324 - Triangle LOVE
题目:Triangle LOVE题意:给一个矩阵, G[i][j] == '1'表示i喜欢j,如果有a喜欢b,b喜欢c,c喜欢a,则称找到一个"三角恋",如果能找到的话输出yes。注意i和j必有关系,不是i喜欢j就是j喜欢i(不同时)思路:这题不就是找环嘛,任意两个元素之间一定有关系,自然就想到了拓扑,这里有规律:一旦出现环,则必定出现三元环。所以只需判断有原创 2013-10-05 18:22:14 · 909 阅读 · 0 评论 -
hdu 4313 - Matrix(最小生成树,并查集)
题目:Matrix题意:N个点N-1条无向边,K个数,要求去掉一些边,使得这K个数相互不可达,求去掉的边的权值和的最小值思路:这K个数不能相互到达,说明这k个数分别属于不同的集合,我们把可以放进同一集合的数作为同一集合,不能放进的,则把这条边舍弃。集合自然想到用并查集。要找最小值,我们可以把所有边按权值从大到小排序,顺序寻找,找到不能放进的则跳过,res原创 2013-10-03 20:44:46 · 1116 阅读 · 0 评论 -
最短路
1.dijkstra算法用于计算一个节点到达其他任何结点的最短距离,要求图中不存在负权边 思路:模板:const int INF = 0x03f3f3f3f;const int maxn = 100;int preV[maxn]; //最短路径树中的前驱结点信息表,preV[x]=y : y是x的前驱结点原创 2013-09-06 20:40:27 · 935 阅读 · 0 评论 -
强连通分量
1.tarjan算法算法介绍:tarjan算法模板:int cnt=0; //有几个强连通分量vector G[10010]; //vector邻接表int dfn[10010],low[10010]; //dfn[u]:节点u搜索的次序编号(时间戳) low[u]:u或u的子树能够追溯到的最早原创 2013-09-11 23:39:16 · 670 阅读 · 0 评论 -
最小生成树
1.Prim算法思路:将顶点集V分为两部分S和V-S,S表示已经加入生成树的点集,算法的开始可以选取任意一个顶点加入S,之后每次在V-S中寻找到达S(即已构造的生成树)的距离最小的点,作为下一个顶点加入,直到所有顶点加入S后,或者不能再加入点时(图不连通)完毕 模板(邻接矩阵实现)://prim函数返回最小生成树的边权值之和//cost[][]为邻接矩阵,low[]为顶点到已原创 2013-09-06 20:33:19 · 811 阅读 · 0 评论 -
HDU 3360-National Treasures(最小点覆盖+奇偶匹配)
/******************************************************* 题意: 现在有一个n*m的博物馆g,每一个g[i][j]要不是一个<=2^12 的数,要不就是-1。 如果这个点是-1,表示这个点有一个守卫 否则就是以g[i][j]为关键字规则的宝物。 具体规则是: 现在有12个被编号的点(原创 2014-05-15 16:46:08 · 1172 阅读 · 0 评论