欧拉回路和欧拉路径
哥尼斯堡七桥问题
七桥问题时18世纪著名古典数学问题之一. 在哥尼斯堡的一个公园里, 有七座桥将河中两个岛及岛与河岸连接起来, 问是否可能从这四块陆地中任一块出发, 恰好通过每座桥一次, 再回到起点
欧拉于1736年研究并解决了此问题, 并因此开创了数学的一个新的分支——图论与几何拓扑
欧拉回路和欧拉路径
① 对于无向图, 所有边都是联通的
(1) 存在欧拉路径的充要条件: 度数为奇数的点只能有0或2个
(2) 存在欧拉回路的充要条件: 度数为奇数的点只能有0个 ② 对于有向图, 所有边都是联通的
(1) 存在欧拉路径的充要条件: 要么所有点的出度均等于入度; 要么除了两个点之外, 其余所有点的出度等于入度, 剩余的两个点: 一个满足出度比入度多1(起点), 另一个满足入度比出度多1(终点)
(2) 存在欧拉回路的充要条件: 所有点的出度均等于入度
//dfs暴搜欧拉路径
void dfs (int u)
{
for(int i=1;i<=n;i++)
if(g[u][i])
{
g[u][i]--,g[i][u]--;
dfs(i);
}
ans[++cnt]=u;
}
//ans数组逆序存储路径,需要倒序输出
for(int i=cnt;i;i--)cout<<ans[i]<<' ';
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix