图论
仅是路过
这个作者很懒,什么都没留下…
展开
-
HDU1181 变形课(搜索或并查集)
原题链接:点击打开链接 这道题我分别用了搜索和并查集做了一次,题目不难,可以看成一个有向图。 贴并查集代码: #include #include using namespace std; string str; int father[30]; find(int x) { if(x!=father[x]) father[x]=find(father[原创 2013-04-01 11:31:17 · 1804 阅读 · 0 评论 -
HDU2063 过山车(二分图最大匹配)
二分图的基本概念 一个无向图G=,如果存在两个集合X、Y,使得X∪Y=V, X∩Y=Φ,并且每一条边e={x,y}有x∈X,y∈Y,则称G为一个二分图(bipartite graph)。常用来表示一个二分图。若对X中任一x及Y中任一y恰有一边e∈E,使e = {x, y}, 则称G为完全二分图(complete bipartite graph)。当|X| = m,|Y| = n时,完全二分图G原创 2013-04-05 14:55:24 · 740 阅读 · 0 评论 -
几大最短路径算法比较
用于解决最短路径问题的算法被称做“最短路径算法”,有时被简称作“路径算法”。最常用的路径算法有:Dijkstra算法、A*算法、SPFA算法、Bellman-Ford算法和Floyd-Warshall算法,本文主要介绍其中的三种。 最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括: 确定起点的转载 2012-12-06 07:03:58 · 715 阅读 · 1 评论 -
HDU2112 HDU Today(最短路径)
本题我是用优先队列优化的迪杰斯特拉算法,算作练手题。 思路::基本算法,是dijstra算法,注意此题是无向图,题目中没有说明,起点到终点可能是同一个站,此时输出0,不能到达两地输出 -1 , 起点 –> 终点可能不存在公交车。 点击打开链接 #include #include #include #include using namespace std; char name原创 2013-03-22 21:09:29 · 526 阅读 · 0 评论 -
HDU1269 迷宫城堡 有向图强连通分量Tarjan算法
Tarjan算法详解 【功能】 Tarjan算法的用途之一是,求一个有向图G=(V,E)里极大强连通分量。强连通分量是指有向图G里顶点间能互相到达的子图。而如果一个强连通分量已经没有被其它强通分量完全包含的话,那么这个强连通分量就是极大强连通分量。 【算法思想】 用dfs遍历G中的每个顶点,通dfn[i]表示dfs时达到顶点i的时间,low[i]表示i所能直接或间接达到时间最小原创 2013-01-29 17:38:01 · 329 阅读 · 0 评论 -
HDU2767 强连通缩点
题意:已经有条有向边,求最少再有多少条有向边,可以使任意两点互通。 做法:强连通缩点,求出缩点后所有入度为零的个数,和所有出度为零的点的个数,选其中比较大的那个。 注意:当缩点后为一个点的时候,直接判断为零 #include #include #include #include using namespace std; vectormap[20005]; stacktest;原创 2013-03-26 16:47:55 · 529 阅读 · 0 评论 -
Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)
Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先) 作者提示:在阅读本文之前,请确保您已经理解并掌握了基本的Tarjan算法,不会的请到http://hi.baidu.com/lydrainbowcat/blog/item/42a6862489c98820c89559f3.html阅读。 基本概念: 1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割转载 2013-01-30 14:12:14 · 269 阅读 · 0 评论