随笔分类 - 图论
摘要:我真是被自己菜哭了,只记住了两边BFS,还想着复习一下BFS怎么写来着 写完之后整个人都不好了,这是带权图的,丫的 立刻改成了SPFA,希望不要再犯这种错误 1A还是很愉快的 然后例题是一道骗小孩的题,给了个假数k,我还想着不用能不能A呢 结果还是很好了 题意: 有一颗n个结点的带权的无向树, 在s
阅读全文
摘要:点分治我感觉是图论树部分比较考验脑力的一种题目了 POJ1741 题意:给一棵边带权树,问两点之间的距离小于等于K的点对有多少个 满足条件的点对有两种情况:两个点的路径横跨树根,两个点位于同一颗子树中 对于根节点进行一次dfs,求出deep,并将其从小到大排序 然后看一下calculate 如果我们
阅读全文
摘要:先象征性地描述一下问题:一组(或者一个)东西有且仅有两种选择,要么选这个,要么选那个,还有一堆的约束条件 图论问题,当然是建边跑图喽 给出模型: 题目POJ3683 然后说一下这个题的意思: 如果某两个婚礼进行仪式的时间有重合 那么就存在了矛盾关系,通过这些关系连边 Tarjan缩点重新建图(这里建
阅读全文
摘要:本来A*就可以搞定的题,为了怕以后卡复杂度,找了个这么个方法 现阶段水平不够就不补充算法分析部分了 本题难度爆表,低级图论和高级数据结构的大综合 直接上代码了,以后学的多了再回过头来看方法 200多行幸亏没出什么调不出来的错误,唉,菜啊
阅读全文
摘要:被自己菜到了,printf加取地址符调到吐血 POJ3255的次短路问题 算法原理是这样的: 然后给出实现,我直接在原来的板子的基础上改的 真的是,无向图真坑
阅读全文
摘要:POJ3241:求曼哈顿距离最小生成树上第k大(第n-k小)的边 这么难的建模只能抄下来了 好难啊 给出曼哈顿最小生成树的定义:给定二维平面上的N个点,在两点之间连边的代价为其曼哈顿距离,求使所有点连通的最小代价 显然这个图论题要结合解析几何或者是计算几何的一些东西了 首先给出一个结论:以一个点为原
阅读全文
摘要:最小瓶颈路的意思是已经告诉你起点和终点了然后让你求瓶颈,最小瓶颈生成树呢是让你求出连通所有点的 所以最小瓶颈路求起来更快 例题UVA534 然后加入有T组询问,你就要提前预处理出所有的 这个方法在求次小生成树的代码里有体现,直接抄过来就好了 本质上是预处理出f数组 然后给出完整的实现:
阅读全文
摘要:最小瓶颈生成树不一定是最小生成树,但最小生成树一定是最小瓶颈生成树 由于关心最大边便把边从小到大排序,最先生成的那棵生成树就是答案。而这就是Kruskal算法,所以原图的最小生成树就是一棵最小瓶颈生成树了 感觉这个解释很牵强呀 不过知道结论就舒服多了 题目是BZOJ2429 这里看一下返回的结果就知
阅读全文
摘要:先求出MST。再枚举新加的一条边(u,v),这时成环便去掉(u,v)所在环上,即u到v的路径上的权值最大的边(不删(u,v)这个新增的边)。这样就是答案了 次小生成树一定至少有一条边与最小生成树不一样,那么存在不同于最小生成树的生成树中权值和最小的生成树就是次小生成树 处理出每对结点(u,v)的最小
阅读全文
摘要:利用SPFA+EK算法解决费用流问题 例题不够裸,但是还是很有说服力的,这里以Codevs1227的方格取数2为例子来介绍费用流问题 这个题难点在建图上,我感觉以后还要把网络流建模想明白才能下手去做这种题,老实说挺难的 先直接给出建图的代码: 然后给出完整实现,请记住cnt初始必须是1,为了和^配套
阅读全文
摘要:解决最大流问题我搜到了一堆的算法:EK算法、FF算法、Dinic算法、SAP算法、ISAP算法 然而并没有什么鸟用 掌握最常见的Dinic就够了,据说极限优化的ISAP比Dinic更快一些。。我当不知道好了 模板题Codevs1993 给定源点汇点,求从源点走到汇点的所有流量和,最大流就是求最大值了
阅读全文
摘要:利用Stoer-Wagner算法求无向图最小割 直接给出算法描述和过程实现: 然后题目POJ2914的意思是去掉一些边使原图变成两个连通分量并且去掉边的权值之和最小,如果要是去掉的边最少的话让所有边权值为1就好了 v表示经过合并之后的节点,d表示w(A,v[i]) 然后直接给出实现: 像这种完全成熟
阅读全文
摘要:Gale-Shapley算法又叫做延迟认可算法,它可以解决这么一个问题 一共有N位男士和N位女士 每位男士对每位女士都有一个好感度,让他们结合成为N对夫妻,要求男士优先表白,最后问结合情况 以上给出了算法的描述,下面直接给出代码,题目是POJ3487 由于这个问题没有太大变式直接套模板就好了,如果要
阅读全文
摘要:使用最大流和费用流解决二分图的多重匹配 之前编辑的忘存了好气啊。。 本来打算学完二分图的乱七八糟的匹配之后再去接触网络流的,提前撞到了 之前我们说的二分图最大匹配和二分图最大权匹配有一个特点,那就是没个点只能与一条边相匹配 如果规定一个点要与L条边相匹配,这样的问题就是二分图的多重匹配问题 然后根据
阅读全文
摘要:如果,将求二分图的最大匹配的所有匹配边的权重看做1 那么用匈牙利算法求二分图的最大匹配的问题也可以看成求二分图的最大权匹配 如果边权是特例,我们就要使用KM算法来做了 这个算法其实还是比较难的,会用就不错了,更不要说证明了 这里以HDU2255为例,这是一个裸题 在这个题目里面X和Y的size是一样
阅读全文
摘要:其实在写这个的代码的时候我是纳闷的,X集合和Y集合的点,能同时用1,或者2来表示吗? 然后我努力说服自己:它已经是二分图了 它就是存了一个 → 而已 好的我被自己说服了 二分图匹配说的就是,每个人有若干种选择,但是每种选择只能容纳一个人,问你最多能配对多少 或者说成选边的时候不能经过同一个点 最大匹
阅读全文
摘要:我其实只是想练一练二分图判定的,但是翻到了一个这么个题。。 双栈排序早有耳闻,非常欣赏当年的出题水平,堪称经典 这个题AC的人一定是个天才 废话不多说,双栈排序的思路我就不介绍了,没有那个水平,直接来说说怎么二分图染色 这个方法,14年的时候练了很多次,当时习惯写BFS的,可能是因为所有点都要跑所以
阅读全文
摘要:POJ2942:利用Tarjan求无向图的点双连通分支 首先科普一下点双连通分支的求法: 貌似看起来繁琐而复杂。。 然而复杂的确实这道例题,暂时没有找到特别裸的。。 题干大意是这样的,开会,然后给出了一张图,边所连接的两个点互相憎恶,开会的时候只能奇数个人一起圆桌开,问T几个人会世界和平 做法的话,
阅读全文
摘要:POJ3177:利用Tarjan求无向图的边双连通分支 连通图去掉所有的桥(割边)之后,剩下的就是一块儿一块儿的边双连通分支了 那么这道题的描述是给定无向图G,问至少加入多少条边才能让原图成为一个双连通图 这个题的做法是利用Tarjan求出图中的所有桥,以桥为界限分出来的就是一个一个边的双连通分量
阅读全文
摘要:POJ2186:利用Tarjan强连通分量求缩点重构图 缩点就是在求出图的所有的强连通分量之后 把强连通分量都看成一个点 这样形成的一个新的图叫做缩点重构图 下面描述一下POJ2186的题意: 给出n个点和m条边(点与点之间的关系),关系具有传递性,问最后有多少点满足其他所有点都能够通达到此 首先我
阅读全文

浙公网安备 33010602011771号