15145641

随笔分类 -  图论

1 2 下一页
UVALive 6910 Cutting Tree(并查集应用)
摘要:总体来说,这个题给的时间比较长,样例也是比较弱的,别的方法也能做出来。 我第一次使用的是不合并路径的并查集,几乎是一种暴力,花了600多MS,感觉还是不太好的,发现AC的人很多都在300MS之内的过得。 看到他们的做法后,我知道了这个题比较好的做法。 逆向思维的并查集,因为这里只有去边操作,完全可以 阅读全文
posted @ 2016-10-22 22:39 icode-xiaohu 阅读(164) 评论(0) 推荐(0)
CodeForces 698B Fix a Tree (并查集应用)
摘要:当时也是想到了并查集,但是有几个地方没有想清楚,所以就不知道怎么写了,比如说如何确定最优的问题。赛后看了一下别人的思路,才知道自己确实经验不足,思维也没跟上。 其实没有那么复杂,这个题目我们的操作只有三个 1、确定根节点。2、解环。 3连接子树。 如果题目中给出了一个或者多个根节点,我们任选一个即可 阅读全文
posted @ 2016-09-04 16:51 icode-xiaohu 阅读(284) 评论(0) 推荐(0)
CodeForces 696A Lorenzo Von Matterhorn (LCA + map)
摘要:方法:求出最近公共祖先,使用map给他们计数,注意深度的求法。 代码如下: 阅读全文
posted @ 2016-08-15 17:42 icode-xiaohu 阅读(216) 评论(0) 推荐(0)
CodeForces 687A NP-Hard Problem(二分图判定)
摘要:这本来一个挺简单的题呢,结果让我给想复杂了,二分图就是把图分成了两部分,然后不同颜色各一边,肯定是满足题目中说的边和点的条件的,真是犯二了。。 代码如下: 阅读全文
posted @ 2016-08-15 16:51 icode-xiaohu 阅读(355) 评论(0) 推荐(0)
UVALive 2523 Machine Schedule(二分图求最大匹配数)
摘要:题意:有两台机器,上面有多个工作区域,有多个任务,分别可以在两台机器的某一个区域上完成,两台机器一开始都在0区域上工作,每次更改区域,都会重新启动一次,让我们求出最小的重启次数。 思路:将两个区域连线,使用二分图,求出最大匹配数,容易想明白,正好就是最小重启的次数。 注意:0一开始就已经完成,不应该 阅读全文
posted @ 2016-07-31 16:10 icode-xiaohu 阅读(178) 评论(0) 推荐(0)
POJ 1470 Closest Common Ancestors(LCA 最近公共祖先)
摘要:其实这是一个裸求LCA的题目,我使用的是离线的Tarjan算法,但是这个题的AC对于我来说却很坎坷……首先是RE,我立马想到数组开小了,然后扩大了数组,MLE了……接着把数组调整适当大小,又交了一发,嗯?居然WA了,一定是我姿势不对,我换个编译器交一下,结果还是WA……这就比较尴尬了,最后审题目,发 阅读全文
posted @ 2016-06-17 14:30 icode-xiaohu 阅读(285) 评论(0) 推荐(0)
World Finals 1996 Uva 247 (Floyd求闭包)
摘要:思路:用Floyd求传递闭包。 附:逗号后的空格没看到,WA了好多次……。还有就是强连通分量也可以做,但是对这个题来说太麻烦,而且不方便输出,。 代码如下: 阅读全文
posted @ 2016-06-09 20:07 icode-xiaohu 阅读(179) 评论(0) 推荐(0)
UVA - 10048 Audiophobia (Floyd应用)
摘要:题意:求出两点之间所有路径最大权值的最小值。 思路:转变一下Floyd的形式即可; 注意:注意初始化问题,还有UVA奇葩的输出形式。 代码如下: 阅读全文
posted @ 2016-06-09 19:52 icode-xiaohu 阅读(286) 评论(0) 推荐(0)
HDU 4738 Caocao's Bridges(割边)
摘要:乍一看一个模板题,仔细一看还是模板题,但是三个坑。1,不是连通图,放0个。2 守卫为0,放1个。 3注意重边。 阅读全文
posted @ 2016-06-02 23:00 icode-xiaohu 阅读(182) 评论(0) 推荐(0)
HDU 4685 Prince and Princess(二分匹配+强联通分量)
摘要:题意:婚配问题,但是题目并不要求输出最大匹配值,而是让我们输出,一个王子可以与哪些王妃婚配而不影响最大匹配值。 解决办法:先求一次最大匹配,如果有两个已经匹配的王妃,喜欢她们两个的有两个或者以上相同的王子,那她们两个是可以交换的,对于前面的王子来说,他与这两个王妃中的任何一个匹配都不会影响最大匹配值 阅读全文
posted @ 2016-06-02 16:27 icode-xiaohu 阅读(186) 评论(0) 推荐(0)
HDU 4635 Strongly connected(强连通分量缩点+数学思想)
摘要:题意:给出一个图,如果这个图一开始就不是强连通图,求出最多加多少条边使这个图还能保持非强连通图的性质。 思路:不难想到缩点转化为完全图,然后找把它变成非强连通图需要去掉多少条边,但是应该怎么处理呢……有人给出这样的答案,找到分量中点数最少的块,把它的所有入边都去掉……好像是对的,但是万一这个块本来就 阅读全文
posted @ 2016-06-01 19:55 icode-xiaohu 阅读(257) 评论(0) 推荐(0)
HDU 4612 Warm up(双连通分量缩点+求树的直径)
摘要:思路:强连通分量缩点,建立一颗新的树,然后求树的最长直径,然后加上一条边能够去掉的桥数,就是直径的长度。 树的直径长度的求法:两次bfs可以求,第一次随便找一个点u,然后进行bfs搜到的最后一个点v,一定是直径的一个端点(证明从略),第二次以点v为开头进行bfs,求出的最后一个点,就是直径的另一个端 阅读全文
posted @ 2016-06-01 18:16 icode-xiaohu 阅读(214) 评论(0) 推荐(0)
POJ 1236 Network of Schools(tarjan算法 + LCA)
摘要:这个题目网上有很多答案,代码也很像,不排除我的。大家的思路应该都是taijan求出割边,然后找两个点的LCA(最近公共祖先),这两个点和LCA以及其他点构成了一个环,我们判断这个环上的割边有几条,我们的答案就少几个。 有人问,这个题重边怎么办呢,重边肯定不是桥啊。额……对于这个我只能说,这个题的原始 阅读全文
posted @ 2016-05-31 20:35 icode-xiaohu 阅读(299) 评论(0) 推荐(0)
UVA 796 Critical Links (tarjan算法求割边)
摘要:这是在kuangbin的题目里看到的,不得不吐槽一下,题目中居然没给出数据范围,还是我自己猜的~本来是一道挺裸的题,但是我wa了好多次,原因就是这里面有两个坑点,1重边特判,2输出时左边必须比右边小。 但是我之前说过,在判断割边的时候只需要直接记录就可以了,因为每条边只会访问一次,但其实这是取决于建 阅读全文
posted @ 2016-05-25 16:39 icode-xiaohu 阅读(273) 评论(0) 推荐(0)
poj 2594 Treasure Exploration(最小路径覆盖,可重点)
摘要:题意:选出最小路径覆盖图中所有点,路径可以交叉,也就是允许路径有重复的点。 分析:这个题的难点在于如何解决有重复点的问题~方法就是使用Floyd求闭包,就是把间接相连的点直接连上边,然后就是求最小路径覆盖了。我来大概解释一下为什么是对的,首先我们要明确,当我们重复利用一个点的时候,一定是有两个比较良 阅读全文
posted @ 2016-05-24 19:47 icode-xiaohu 阅读(282) 评论(0) 推荐(0)
poj 3020 Antenna Placement (最小路径覆盖)
摘要:二分图题目 当时看到网上有人的博客写着最小边覆盖,也有人写最小路径覆盖,我就有点方了,斌哥(kuangbin)的博客上只给了代码,没有解释,但是现在我还是明白了,这是个最小路径覆盖(因为我现在还不知道啥叫最小边覆盖)。 有一篇博客如下写道:最小路径覆盖只对有向无环图而言,且并不要求原图是二分图,给所 阅读全文
posted @ 2016-05-24 13:42 icode-xiaohu 阅读(192) 评论(0) 推荐(0)
HDU 1054 Strategic Game 最小点覆盖
摘要:最小点覆盖概念:选取最小的点数覆盖二分图中的所有边。 最小点覆盖 = 最大匹配数。 证明:首先假设我们求的最大匹配数为m,那么最小点覆盖必然 >= m,因为仅仅是这m条边就至少需要m个点。然后假如我们已经求得最小覆盖点集,那么在点集中每个点必然有着这样的性质,在于它相连的边里面,一定有一条边的端点不 阅读全文
posted @ 2016-05-23 19:03 icode-xiaohu 阅读(276) 评论(0) 推荐(0)
匈牙利算法求二分图求最大匹配
摘要:无向图匈牙利算法求地的值除以2才是答案,因为每个边都匹配了两次,有向图算法得出的就是答案。 阅读全文
posted @ 2016-05-23 18:09 icode-xiaohu 阅读(209) 评论(0) 推荐(0)
HDU 3861 The King’s Problem(tarjan连通图与二分图最小路径覆盖)
摘要:题意:给我们一个图,问我们最少能把这个图分成几部分,使得每部分内的任意两点都能至少保证单向连通。 思路:使用tarjan算法求强连通分量然后进行缩点,形成一个新图,易知新图中的每个点内部的内部点都能保证双向连通,而新图中的点都是单向无环的,这个时候题目中要求的划分部分的条件,其实就是求最短路径覆盖( 阅读全文
posted @ 2016-05-21 21:45 icode-xiaohu 阅读(254) 评论(0) 推荐(0)
HDU 3594 Cactus (强连通分量 + 一个边只能在一个环里)
摘要:题意:判断题目中给出的图是否符合两个条件。1 这图只有一个强连通分量 2 一条边只能出现在一个环里。 思路:条件1的满足只需要tarjan算法正常求强连通分量即可,关键是第二个条件,我们把对边的判断转化为对点的记录,在tarjan深搜的过程中,使用fa数组记录一下搜索的过程,即每个节点的父子关系,当 阅读全文
posted @ 2016-05-21 20:24 icode-xiaohu 阅读(619) 评论(0) 推荐(1)

1 2 下一页