![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法_图
under_sky_dxj
这个作者很懒,什么都没留下…
展开
-
【DayDayUp】【算法_图_网络流_之三_最小费用最大流】(待补全)
【坚持不能偷懒】 网络流这块有点懵逼,所以一起搞一下 最小费用最大流,下面介绍的是常规做法,比较裸 思路是: 记Flow为剩余流量,Cost为单位流量价格,S为源点,T为汇点 每次在【剩余图】中增广一条【最小单位流量费用】的增广路 怎么做到呢,凡是Flow不为0,表示一条路可以走 然后我们找一条S到T的(可以走的,最小Cost和的路) 那么从S到T的【单位流量消耗】是最小的原创 2017-03-19 11:45:30 · 556 阅读 · 0 评论 -
【DayDayUp】【算法_图_网络流_之二_Dinic层次图与最小费最大流的概述】(待续)
【坚持不能偷懒】 【Dinic与层次图】 突然发现网络流都是套个Dinic的板子,然后啪啦啪啦就完成了 但知其然不知其所以然是好不爽的一件事…… 所以把网络流看了一遍 上回书说道,野生网络流(EK算法)的复杂度 是 O (VEE) 这个效率是比较渣的…… 所以就需要改进 一个常用的算法,也是我长期闭着眼睛套的板子就是Dinic 朴素的Dinic,就是在此基础上,加入一原创 2017-03-16 11:24:28 · 816 阅读 · 0 评论 -
【DayDayUp】【算法_图_强连通_之一_Kosaraju算法和Tarjan算法】
【坚持不能偷懒】 譬如一个有向图,V个点,E条边 如果一个区域中的每个点都能到达任意另一个点 则称这个区域强连通 【相对朴素的Kosaraju算法】 需要对图Dfs两发 第一遍Dfs在dfs时记录一个时间(下面栗子里,括号里为时间) 譬如A->B->C B->D这样的图 我搜索A(1) ->搜索B(2) ->搜索C(3) 这时候,发现没了,退出 所以C变成(3原创 2017-03-16 10:57:00 · 534 阅读 · 0 评论 -
【DayDayUp】【算法_图_网络流_之一_增广路】
【坚持不能偷懒】 (概念简单说明,具体还请自行百度……) 网络流: 常见问题:最大流 一个图,有向图,边上有容量上限,许多点,起点S,终点E 从S到E,最多流量是多少 核心思想: 【增广路】【剩余图】【反向边】 朴素地说 我找完一条路了,把流量去掉 则加入【反向边】重新做图 做出的图就是【剩余图】 如果我还能找到一条流量不为0的路径 即是一条【增广路】原创 2017-03-15 16:27:18 · 460 阅读 · 0 评论 -
【DayDayUp】【算法_图_欧拉回路_之一_Fleury (弗罗莱) 算法】
【坚持不能偷懒】 通过图(无向图或有向图)中所有边且每边仅通过一次通路称为欧拉通路,相应的回路称为欧拉回路。具有欧拉回路的图称为欧拉图(Euler Graph),具有欧拉通路而无欧拉回路的图称为半欧拉图。 ——百度百科 现在开始通俗地扯扯。 什么是欧拉图捏,就是 从【一个点】出发 把【每条边】刷【一】发 且 只刷【一】发 然后【回到这个点】 满足这样条件的路径,就是原创 2017-03-21 13:23:46 · 864 阅读 · 0 评论 -
【DayDayUp】【算法_图_哈密顿回路_之一_回溯法】(待补完)
刚刚搞了篇欧拉回路,现在趁热再搞个哈密顿回路…… 欧拉回路是跑光所有的边再跑回来,一条边跑且仅跑一遍 哈密顿回路是跑完所有的点再跑回来,路过的节点,跑且只跑一次 哈密顿路径问题在上世纪七十年代初,终于被证明是“NP完备”的。据说具有这样性质的问题,难于找到一个有效的算法。实际上对于某些顶点数不到100的网络,利用现有最好的算法和计算机也需要比较荒唐的时间(比如几百年)才能确定原创 2017-03-21 13:40:20 · 3622 阅读 · 0 评论 -
【DayDayUp】【算法_图_最短路_之一_Dijkstra和几种优化姿势】
V 定点数 E 边数 【原生DIJ】 从初始点出发 V 次循环 每次对当前点扩展【有效边】 (如果直接对所有点刷 是 V ,而用链表刷有效边是总计为E ) 更新已知最短路 再取出【权值最低点】作为新点重复 (寻最小值 V ) 故复杂度为 V * V + E 【DIJ 的 Heap 优化】 考虑到每次找【权值最低点】这一步,对其进行堆优化 其具体措施是 写一个堆 然后原创 2016-12-19 16:41:18 · 387 阅读 · 0 评论