algorithm - 我们能否将任何无向图转换为有向图,使得每个顶点的入度和出度之差最多为 1?
问题描述
给定任何无向图 G,是否总有办法为其边添加方向,使得每个顶点的入度和出度之间的差不大于 1?
例如,考虑 G 由顶点 1、2 和 3 以及无向边 1--2、1--3 和 2--3 定义。然后,有向版本 1 -> 2、2 -> 3 和 3 -> 1 使得所有顶点的入度和出度之间的差异为 0。
解决方案
这个问题是关于无向图的方向。
如果每个顶点的入度和出度之间的差为 0,则方向是欧拉方向。事实证明,任何具有所有度的图甚至都具有欧拉方向。只需计算在这种情况下始终存在的欧拉回路,并根据该回路选择方向。
使用这个,同样的问题在这里用一个聪明的技巧解决了:只需添加一个新顶点并将其链接到所有奇数度的顶点,然后计算欧拉方向,并删除额外的顶点!
推荐阅读
- javascript - li onclick 函数没有被调用
- javascript - 如何通过 SignalR 将 MediaStream 从客户端传递到服务器以及从服务器传递到客户端
- reactjs - 如何在 mapStateToPropsMethod 中使用 React 组件的本地状态?
- java - 指示 Go TCP Server Java TCP Client 已完成写入 Stream
- websocket - 如果 Web 套接字已关闭,请重新连接它
- django - Django Auth用户模型为密码设置不同的字段名
- python - 如何在最大池之前填充特征图?
- mongodb - 修改mongodb.conf后mongodb启动失败
- r - 如果在其他栅格中满足条件,则尝试使用哪个函数从栅格中提取数据
- datasource - 没有此请求所需的范围 - Mixpanel