图论
ocean_62
一只奋战在OI路上的小小蒟蒻,怀揣着一个大大的梦想 0.0
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
图的割点(代码)
用邻接链表来存储图,用flag数组来表示点的状态(是否为割点),最后输出割点。判断一个点是割点:1.当前节点不是根节点,且有一个儿子的low值大于等于它的num值。 2.当前节点是根节点,且至少有两个儿子。(儿子的low值不可能小于它的num)P.S.这是一个无向图,要将数组翻倍。#include#includ转载 2016-10-20 13:34:53 · 317 阅读 · 0 评论 -
图的割边(代码)
割边不需要讨论当前点是否是根节点的情况,因为是不是根节点对结果都无影响。只需要将割点代码中的low[node[x]]>=low[cur]改为low[node[x]]>low[cur]即可,因为如果有等号,node[x]还是可以通过非树边到达cur,此边就不是割边。割边判断的是node[x]是否可以通过非树边到达cur(cur并不删去),而割点判断的是是否可以通过非树边到达cur之前的点(cur转载 2016-10-20 15:02:01 · 450 阅读 · 0 评论 -
二分图最大匹配-匈牙利算法
二分图的定义:如果一个图的所有顶点可以被分为X和Y两个集合,并且所有边的两个顶点恰好一个属于集合X,另一个属于集合Y,即每个集合内的顶点没有边相连,那么此图就是二分图。增广路:增广路的本质就是一条路径的起点和终点都是未被配对的点。如果找到一条增广路,那么配对数将会加1.寻找一个点配对的基本思路:1.从点u开始,从点u引出的边中任意选一条边(u-v)开始配对。转载 2016-10-20 17:04:22 · 884 阅读 · 0 评论 -
POJ1789 Truck History
用一个7位的string代表一个编号,两个编号之间的距离代表这两个编号之间不同字母的个数。一个编号只能由另一个编号“衍生”出来,代价是这两个编号之间相应的距离,现在要找出一个“衍生”方案,使得总代价最小。N´4个编号:´aaaaaaa´baaaaaa´abaaaaa´aabaaaa 后三个均由第一个衍生可得到最小距离和1+1+1=3.1.原创 2017-01-24 11:04:40 · 258 阅读 · 0 评论
分享