当前位置: 首页 > news >正文

欧拉路径/欧拉回路 Hierholzers

欧拉路径/欧拉回路 Hierholzers

欧拉路径:一笔画完图中全部边,画的顺序就是一个可行解;当起点终点相同时称欧拉回路。

有向图欧拉路径存在判定

有向图欧拉路径存在:\(\tt ^1\) 恰有一个点出度比入度多 \(1\) (为起点);\(\tt ^2\) 恰有一个点入度比出度多 \(1\) (为终点);\(\tt ^3\) 恰有 \(N-2\) 个点入度均等于出度。如果是欧拉回路,则上方起点与终点的条件不存在,全部点均要满足最后一个条件。

signed main() {int n, m;cin >> n >> m;DSU dsu(n + 1); // 如果保证连通,则不需要 DSUvector<unordered_multiset<int>> ver(n + 1); // 如果对于字典序有要求,则不能使用 unorderedvector<int> degI(n + 1), degO(n + 1);for (int i = 1; i <= m; i++) {int x, y;cin >> x >> y;ver[x].insert(y);degI[y]++;degO[x]++;dsu.merge(x, y); // 直接当无向图}int s = 1, t = 1, cnt = 0;for (int i = 1; i <= n; i++) {if (degI[i] == degO[i]) {cnt++;} else if (degI[i] + 1 == degO[i]) {s = i;} else if (degI[i] == degO[i] + 1) {t = i;}}if (dsu.size(1) != n || (cnt != n - 2 && cnt != n)) {cout << "No\n";} else {cout << "Yes\n";}
}

无向图欧拉路径存在判定

无向图欧拉路径存在:\(\tt ^1\) 恰有两个点度数为奇数(为起点与终点);\(\tt ^2\) 恰有 \(N-2\) 个点度数为偶数。

signed main() {int n, m;cin >> n >> m;DSU dsu(n + 1); // 如果保证连通,则不需要 DSUvector<unordered_multiset<int>> ver(n + 1); // 如果对于字典序有要求,则不能使用 unorderedvector<int> deg(n + 1);for (int i = 1; i <= m; i++) {int x, y;cin >> x >> y;ver[x].insert(y);ver[y].insert(x);deg[y]++;deg[x]++;dsu.merge(x, y); // 直接当无向图}int s = -1, t = -1, cnt = 0;for (int i = 1; i <= n; i++) {if (deg[i] % 2 == 0) {cnt++;} else if (s == -1) {s = i;} else {t = i;}}if (dsu.size(1) != n || (cnt != n - 2 && cnt != n)) {cout << "No\n";} else {cout << "Yes\n";}
}

有向图欧拉路径求解(字典序最小)

vector<int> ans;
auto dfs = [&](auto self, int x) -> void {while (ver[x].size()) {int net = *ver[x].begin();ver[x].erase(ver[x].begin());self(self, net);}ans.push_back(x);
};
dfs(dfs, s);
reverse(ans.begin(), ans.end());
for (auto it : ans) {cout << it << " ";
}

无向图欧拉路径求解

auto dfs = [&](auto self, int x) -> void {while (ver[x].size()) {int net = *ver[x].begin();ver[x].erase(ver[x].find(net));ver[net].erase(ver[net].find(x));cout << x << " " << net << endl;self(self, net);}
};
dfs(dfs, s);
http://www.gsyq.cn/news/29198.html

相关文章:

  • 无源汇点的最小割问题 Stoer–Wagner
  • 染色法判定二分图 (dfs算法)
  • 链式前向星建图与搜索
  • 一般图最大匹配
  • CF2152G
  • 平面图最短路(对偶图)
  • 最小生成树(MST问题)
  • 10.23总结
  • 关于 vue项目 代理的坑;baseURL必须为空;代理才会生效
  • 10.21总结
  • 【Linux】倒计时和进度条完成
  • 权威调研榜单:四氟换热器生产厂家TOP3榜单好评深度解析
  • 2025年热门的魔方智能柜,黑金刚智能柜厂家推荐及选择指南
  • 2025 年漆包线厂家最新推荐榜,技术实力与市场口碑深度解析,筛选优质品牌助力采购决策
  • 2025 年优质销轴厂家最新推荐榜,技术实力与市场口碑深度解析,聚焦高品质连接解决方案发黑 / 异型 / 非标 / 农机销轴公司推荐
  • View root,dirs,files
  • 2025年正规的按动中性笔,多功能中性笔厂家推荐及采购指南
  • 2025 年企业邮箱供应商品牌最新推荐榜,聚焦技术实力与市场口碑深度解析
  • python type创建类
  • 2025 年最新试验箱厂家排行榜:高低温 / 快速温变 / 三综合 / 淋雨 / 沙尘 / 高低温冲击 / 高低温湿热设备优质厂家最新推荐
  • 2025年质量好的防火风管加工,角钢风管加工厂家推荐及选择建议
  • 2025 年板材厂家最新推荐排行榜:胖胖熊等优质企业综合实力解析与选购参考
  • 2025 年 502 胶水 UV 无影胶 AB 胶厂家最新推荐榜,技术实力与市场口碑深度解析的优质厂商汇总
  • 2025年知名的氧化铝溶胶,粘结剂铝溶胶直销制造
  • 2025年靠谱的小层叠养鸡设备,育雏育成养鸡设备,养鸡设备粪带厂家推荐及选择指南
  • 2025年昆明装修公司最新推荐榜,全屋装修/房屋装修/侘寂风格装修/简约时尚装修/宋式美学装修/极简风格装修、聚焦企业服务品质与风格适配性深度剖析
  • 2025年专业的不锈钢保温风机,高压保温风机定制定做
  • 2025年比较好的橡胶辊,轧辊橡胶辊,硅胶辊橡胶辊,烫金轮橡胶辊厂家推荐及采购指南
  • EEPROM数据写入策略
  • 2025年靠谱的温室大棚,玻璃温室大棚最新TOP排名厂家