最短路径问题(dijkstra+floyd+bellman-ford+spfa+bfs+dfs)最小生成树问题(prim+kruskal)

bfs:广度优先搜索

dfs:深度优先搜索

dijkstra:用于单源最短路径,无负权路

floyd:任意两点间最短路径,可以算负权值,不能算负权回路

bellman-ford:可以计算小规模的负权回路

spfa:队列优化的bellman-ford

dinic:计算最大流

bfs:可以用来求无权图的最短路径

重点在于每次的试探

pop时才输出

dfs:

重点在于回溯

头部输出,相邻节点dfs

dijkstra算法

与此同时还有堆优化的dijkstra算法,使用链式前向星

floyed:   最大里面找最小这种类似的问题

bellman-ford

存储设计使用 struct{a,b,w}   存储边的所有信息

n;

m;

{如果flag==1&&i==n-1  存在负权回路}

 

spfa: Bellman-Ford算法 的队列优化算法的别称

 判断是否有负权回路:n个点,从起点到终点最多n-1条边,即从起点到终点最多n-1条路,所以当某个点进队次数大于n时一定存在负权回路

 

注意:释放队首结点 

dinic:求最大流/最小割问题

bfs,dfs

差分约束方程:从0跑一边判断是否有负权环,再从1跑一遍

P4878 [USACO05DEC]Layout G

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值