随笔分类 -  图论

1 2 下一页
最近公共祖先LCA Tarjan算法
摘要:最近公共祖先LCA:Tarjan 算法这篇博客写的非常不错,我就是看这个学会的。第一次写最近公共祖先问题,用的邻接表指针。对于一棵有根树,就会有父亲结点,祖先结点,当然最近公共祖先就是这两个点所有的祖先结点中深度最大的一个结点。 0 | 1 / \ 2 3比如说在这里,如果0为根的话,那么1是2和3的父亲结点,0是1的父亲结点,0和1都是2和3的公共祖先结点,但是1才是最近的公共祖先结点,或者说1... 阅读全文
posted @ 2010-11-03 11:57 ylfdrib 阅读(33543) 评论(4) 推荐(8)
poj3694 Network 求桥边个数[tarjan + LCA]
摘要:Network又调试了好久,终于搞定了,又学习了一点点。。呵呵。题意很简单:给定一个连通的无向图,有Q组操作,每组add一条边(u, v),问图中现有多少条割边。思路:首先是一个tarjan,求的强连通分支和桥边,然后缩图,这样就得到一棵树,缩图的时候注意一下,将点分层,而且是个有根树,这样对于每增加一条边,就会形成一个环,那么环上的所有边都不是割边了,求的时候,用LCA的方法,分别将bel[u]... 阅读全文
posted @ 2010-11-01 11:07 ylfdrib 阅读(1148) 评论(0) 推荐(0)
poj1780 Code 裸的欧拉回路
摘要:Code忙了好久,终于搞定了,每次将不会的题琢磨完了,都感觉是一次小小的进步,庆祝一下下。。呵呵首先是建图,题意要求所有的n位数编码成一个数字串,每个n位数只出现一次,可以把n位数看成边,那么可以把它的前n-1位看成点A,后n-1一位看成点B,那么它就是A->B的一条边了,这样我们就可以对10^(n - 1)个点建图,每个节点对另外10个点有边,找一次欧拉回路就行了。这题有一难点,要求按最小... 阅读全文
posted @ 2010-10-31 16:09 ylfdrib 阅读(1279) 评论(1) 推荐(0)
poj1797 Heavy Transportation 最大生成树
摘要:Heavy Transportation题意:Hugo Heavy要从城市1到城市N运送货物,有M条道路,每条道路都有它的最大载重量,问从城市1到城市N运送最多的重量是多少。其实题意很简单,就是找一条1-->N的路径,在不超过每条路径的最大载重量的情况下,使得运送的货物最多。分析:其实就是找一条带权路径,使得路径上最小的权值最大化,只要求一次最大生成树即可,本也没啥复杂的算法,不过这题的解题... 阅读全文
posted @ 2010-10-27 15:54 ylfdrib 阅读(3473) 评论(0) 推荐(0)
zoj3229 Shoot the Bullet 有源汇上下界最大流
摘要:Shoot the Bullet第一次做上下界网络流,感觉还是挺简单的,主要是在无源汇可行流的基础上 + 二分题意:Aya要给m个cute girl 拍照片呢,第x个girl at least 要拍Gx张照片,整个拍摄过程要分n天进行,第k天可以给Ck个girl拍,代号分别为Tk1, Tk2.....,TkCk,这一天给她们拍的照片数有限制,范围是[Lki,Rki],同时这一天也有拍照总数限制Dk... 阅读全文
posted @ 2010-10-12 20:40 ylfdrib 阅读(1255) 评论(0) 推荐(0)
fzu1980 AbOr's story 最大权闭合图
摘要:AbOr's story比赛开始很久了,才想出来是最大权闭合图这么个模型,可以转换成最小割来做定义一个有向图G = (V, E)的闭合图(closure)是该有向图的一个点集,且该点集的所有出边都还指向该点集。分析这类模型,有个很重要的特征,满足 对于∀<u, v>∈ E,若有u∈V'成立,必有v∈V'成立 这个条件,这在布尔代数中叫&ldq... 阅读全文
posted @ 2010-10-11 18:04 ylfdrib 阅读(352) 评论(0) 推荐(0)
zoj3408 Gao 最短路 + DP
摘要:GaoZOJ Monthly, October 2010好不容易看到一道图论,可惜没搞定。。点数很多,N = 10000,很明显不能暴搜,单源最短路径,dijkstra我都没敢写,O(n^2),怕超时,记得有个O(nlog(n))的heap优化,还没学会,赛后看了解题报告,就是个最短路问题,只不过加了个DP过程,设s[v]表示源点到点v的路径数,t[v]表示点v到其余各点的路径数,则经过点v的最短... 阅读全文
posted @ 2010-10-09 17:53 ylfdrib 阅读(505) 评论(0) 推荐(0)
poj1112 Team Them Up! 二分着色 + DP
摘要:Team Them Up!题意:简单地说,就是,一个N个节点的有向图,将节点分成两个集合,满足以下四个条件:1。每个节点属于其中一个集合2。每个集合至少有一个节点3。集合里的每一个节点都有边连向同一个集合里的其他点4。被分成的两个集合的大小要尽量接近如果不能满足上述条件,输出 No solution ,否则输出这两个集合刚开始也不知道怎么做,后来看了分析,其实弄懂了也不是太难,我还WA了这么多次,... 阅读全文
posted @ 2010-10-08 13:43 ylfdrib 阅读(1677) 评论(0) 推荐(0)
poj2723 Get Luffy Out 2-SAT问题
摘要:Get Luffy Out好久没有写博客了。。看来开学还是有一定的影响的。。上次天津赛区一道2-sat问题,让我很是YM,如果和我一样,没学过,建议看看论文其实2-SAT问题,就是一种逻辑判断问题,问题可以简述为:共有N对顶点,M对不相容关系,问:能否从这N对中每对顶点中选出一顶点,共选出N个顶点,使得两两相容。建边方式:对于两对顶点A,A' B,B', 如果A,B不相容,则建边<A,B'&... 阅读全文
posted @ 2010-09-14 21:33 ylfdrib 阅读(976) 评论(0) 推荐(0)
hdu3267 Graph Game 缩点 + 博弈
摘要:Graph Game题目大意:一个无向图游戏中,R和B分别表示两个选手,两个人对图中的边轮流着色,R涂红色,B图蓝色,R优先,B的目标是,所有涂成蓝色的边和边相邻的点,构成一个生成子图,图中包含原图所有点,且连通,R的任务就是阻止B。问:B能否win,是,输出YES,否则,输出NO。很明显是一道博弈题,我的做法是,首先进行缩点,对于相邻顶点u,v,如果u,v间的边数不小于2,则可以缩点,因为无论R... 阅读全文
posted @ 2010-09-04 15:10 ylfdrib 阅读(1038) 评论(2) 推荐(0)
NOI2006 最大获利 最大权闭合图
摘要:最大获利最大权闭合图 Maximum Weight Closure of a Graph 在胡伯涛论文 《最小割模型在信息学竞赛中的应用》中有详细介绍。定义一个有向图G = (V, E)的闭合图是该有向图的一个点集,且该点集的所有出边都还指向该点集。即闭合图内的任意点的任意后继也一定在闭合图中。更形式化地说,闭合图是这样的一个点集V'∈V,满足对于∀u∈V'引出的... 阅读全文
posted @ 2010-08-30 12:14 ylfdrib 阅读(1238) 评论(0) 推荐(0)
poj3189 二分搜索 + 二分图多重匹配
摘要:学习了下二分图多重匹配,感觉挺不错的,当点数比较少的时候,就不用转化成最大流来做了,代码复杂度较最大流低。其实学过匈牙利二分图最大匹配,学这个也很容易,所谓多重匹配,就是Y集合某点可以和X集合多点同时匹配,也就是说Y集合点度不再是一,问X集合的最大匹配是多少。对于X集合点u要和Y集合点v匹配,如果v点度未满,则直接uv匹配,否则,对v点的每一个父节点增广。这题比较容易想到二分,二分最小的range... 阅读全文
posted @ 2010-08-27 21:33 ylfdrib 阅读(1321) 评论(0) 推荐(0)
poj1041 无向图欧拉回路 按最小升序输出
摘要:John's trip这道题很不错,由于图已经保证连通,首先用度数是否是偶数,判断图是否是欧拉图,然后,输出最小升序,就成了一大难题,百科上有代码,这题让我理解了深搜的又一强大功能,其实就是每次都从小往大的搜,先搜得一个最小序环,然后对环上的每一点进行搜索,其实对于欧拉图而言,每个点要么就只剩一个点,什么也搜不到了,要么还有一个环,只要把环上路径全都插入到对应位置上,用栈存路径,每次只有回溯到当前... 阅读全文
posted @ 2010-08-24 21:27 ylfdrib 阅读(1595) 评论(0) 推荐(0)
zoj3378 双连通 求桥、割边 dfs
摘要:如果不知道什么双连通: 双连通分量这题和以前的双连通有点不太一样,以前求得时候都是整个图的割边,这里求得是两点间的割边,结题报告上说了一种暴力的方法,首先求出所有割边,然后求一次最短路,则割边和最短路径求一次交集,可以得到S, T间的桥,很不错的思路,如果没想法了,确实可以暴力一下,这题还可以用dfs + 记录的方法,直接求得S, T间的桥,dfs的时候,在每个桥边(u, v)都需要回溯,判断一下... 阅读全文
posted @ 2010-08-23 20:53 ylfdrib 阅读(526) 评论(0) 推荐(0)
最小度限制生成树
摘要:具体讲解和证明,黑书上有,IOI2004国家集训队论文--王汀 中也有讲解, 这里简单介绍求法过程。为了方便叙述,把顶点V0的度数<=K称作度限制条件,把满足这一条件的生成树称为度限制生成树,把权值和最小的度限制生成树称为最小度限制生成树。要求的最小K度生成树,应该有以下的步骤:算法框架:1. 先求出最小m度限制生成树;2. 由最小m度限制生成树得到最小m+1度限制生成树;3. 当dT(v0... 阅读全文
posted @ 2010-08-21 20:44 ylfdrib 阅读(4092) 评论(2) 推荐(0)
pku2942 (点)双连通分量 求割点 判奇圈
摘要:Knights of the Round Table这题还是比较难了,我刷了两天,终于弄懂什么意思了,杯具!点双连通,指的是,去掉任何一个点以及这个点的临边,都不影响整个图的连通性。可以这样认为,任意两点都有两条完全不同的路可达,也就构成了圈。题目大意:国王身边有n个骑士,每次开会需要奇数个骑士来开会,会议桌是个圆桌,给出m个点对<A, B>,表示骑士A和B不能坐在一起,问:有多少个骑... 阅读全文
posted @ 2010-08-12 09:47 ylfdrib 阅读(1088) 评论(1) 推荐(0)
pku3352 (边)双连通分量
摘要:Road Construction题目大意:在一个小岛上,有n个景点,r条道路,经常由于有的路需要修理,影响了旅客的观光。问:如果修理任意一条路的时候都不影响任意两个景点的连通,至少还需要多少条路。分析:以景点为节点,道路为边,建图后,去掉任何一条边,都不影响整体的连通性,说明此图的连通度 >= 2,正好是双连通的性质,如果去掉某条边,图的连通分支增加了,则这条边称为桥,这道题就可以用dfs... 阅读全文
posted @ 2010-08-12 08:09 ylfdrib 阅读(381) 评论(0) 推荐(0)
pku3177 (边)双连通分量 求桥
摘要:初学双连通分量,刷了第一道题,纪念!题意:有F个牧场,R条道路,形如<A, B>,表示牧场A到牧场B有一条通路(双向的),给出路保证每两个牧场都有通路,有些cow每次都得走同样的路有A到B。问:再建最少的路使得任意两个牧场间都有两条不同的路,不同,指的是由A到B的过程中没有经过任一同一段路。分析:双连通分量,正好保证了切断任何一条边,都不影响分量中任何两个顶点的连通性,也就是说双连通分... 阅读全文
posted @ 2010-08-08 11:10 ylfdrib 阅读(563) 评论(0) 推荐(0)
<zz>有向图强连通分量的Tarjan算法
摘要:转载自原博客:beyond the void[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3... 阅读全文
posted @ 2010-08-08 10:46 ylfdrib 阅读(382) 评论(0) 推荐(0)
<zz>图的割点、桥与双连通分支
摘要:转载自原博客:beyond the void [点连通度与边连通度]在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。一个图的点连通度的定义为,最小割点集合中的顶点数。类似的,如果有一个边集合,删除这个边集合以后,原图变成多个连通块,就称这个边集为割边集合。一个图的边连通度的定义为,最小割边集合中的边数。[双... 阅读全文
posted @ 2010-08-08 10:36 ylfdrib 阅读(623) 评论(0) 推荐(0)

1 2 下一页