- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
拓扑排序与强连通分量
图论1
江川
七桥问题
七桥问题
七桥问题
图、点、边
G=(V,E)
V 顶点集
E 边集
图的基本概念
G=(V,E)
有向图、无向图
无向图 VV e= {a,b}
有向图 VxV e= a,b = {{a}, {a,b}}
图的基本概念
G=(V,E)
度(入度、出度)
环
路径
割
图的基本概念
G=(V,E)
简单图
完全图
二分图
平面图
图的基本概念
邻接矩阵
图的表示
邻接表(边表)
图的表示
判定
连通
度数平衡(有向、无向)
欧拉环
求解
“有边就走”
回溯
欧拉环
其他
欧拉路
混合图
欧拉环
汉密尔顿回路
NP-Complete
对于顶点个数大于2的图,如果图中任意两点度的和大于或等于顶点总数,那这个图一定是哈密顿图。
汉密尔顿回路 vs 欧拉回路
汉密尔顿回路
如果一个问题不是多项式时间可解的……
1、加强条件,针对特定情况
2、减弱要求,求近似解
3、降低问题规模
汉密尔顿回路
O(n!*n) ?
状态压缩动态规划
要考虑的状态:
已经经过哪些点? 2^n
经过点的顺序? n!? n*n ? n
汉密尔顿回路
例:[1,0,1,1,0][3]
表示经过了1、3和4,并停在3
状态数:2^n*n
转移:n
复杂度:O(2^n*n^2)
POJ 3311
汉密尔顿回路
Floyd
点对间的距离
O(n^3)
动态规划的思想
F[i,j,k]?F[i,j]
最短路
Dijkstra
单源最短路径
贪心算法
寻找未处理的最小的点?更新其他点
不能有负权边
O(V^2)? O(VlogV+E)
最短路
有效的程序员不应该浪费很多时间用于程序调试,他们应该一开始就不要把故障引入。
Bellman-Ford
对每一条边进行松弛操作,重复V次:
for each edge(u,v)
if d[v] d[u] + w(u,v)
d[v] = d[u] + w(u,v)
允许负权边,可判断负权圈
O(VE)
最短路
SPFA
Shortest Path Faster Algorithm
Bellman-Ford的优化
用一个队列存储被更新的点
期望复杂度:O(kE)
最短路
特殊的图
连通性
结构实用
序
层次
树
最小生成树
Prim算法
两个点集(加入生成树和未加入生成树)
O(V^2)
Kruscal算法
按边权顺序从小到大枚举
O(E log E)
生成树
次小生成树
在最小生成树上添边
?生成环
?删边
?新的生成树
在最小生成树上求两点路径上最大的边
poj1679
生成树
拓扑排序
1、选择入度为0的点v
2、删除v和从v出发的所有边
拓扑排序与强连通分量
强连通分量
Tarjan算法
基于对图深度优先搜索的算法
DFN(u):u搜索到的次序编号(时间戳)
Low(u):u或者u的子树能够追溯到的最早的搜索栈中的节点的次序号。
DFN(u)=Low(u)时,以u为根的搜索子树上所有节点是一个强连通分量。
拓扑排序与强连通分量
拓扑排序与强连通分量
拓扑排序与强连通分量
拓扑排序与强连通分量
拓扑排序与强连通分量
拓扑排序与强连通分量
拓扑排序与强连通分量
O(V+E)
POJ 2762
割点v:去掉点v后图不连通
桥/割边e:去掉边e后图不连通
双连通分量:
1、(边)任意去掉一条边,图仍连通
2、(点)任意去掉一个点,图仍连通
割点、桥、双连通分量
Tarjan算法求割点
在图的搜索树中,如果u为割点,当且仅当满足下面的条件:
1、如果u为树根,那么u必须有多于1棵子树
2、如果u不为树根,那么(u,v)为树枝边,当Low[v]=DFN[u]时。
割点、桥、双联通分量
割点、桥、双联通分量
在一个网络中,某些点之间可以接发信息(单向)。问至少增加多少条边可以使从任一点发送的信息可以到达其他所有点?
例题1
强连通分量? 看做一个点
观察入度为0的点和出度为0的点
poj1236
例题1
给定一个有向无环图,n个点,m条边(1=n=100000,?0=m=1000000),每个点有点权。要求选择一条从某个入度为0的点到某个出度为0的点的路径,使得整个路径上点的权值之和最大。
您可能关注的文档
最近下载
- 丽声指南针英语名著分级读物Little Red Riding Hood小红帽 教学设计.docx
- 中华人民共和国第十四届运动会游泳比赛成绩册(编排系统版).pdf
- 数字温度计设计论文分析.doc
- 国开(河北)2024年《中外政治思想史》形成性考核1-4答案.docx
- 陕西中考数学第二轮复习策略讲座.ppt
- 东北三省四城市联考暨沈阳市高三质量监测(二)英语含答案解析.docx
- 中国肝癌规范诊疗质量控制指标(2022版).pptx
- 部编人教版八年级下册语文期中考试试卷及答案.docx VIP
- 山东省青岛市市南区2022-2023学年八年级下学期期末物理试卷(含答案).docx VIP
- 财务年度审计服务项目公开招投标书范本.doc VIP
文档评论(0)