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

Hash求无向图的桥

浅记一下,觉得颇有意趣。

我们记一个图 \(S\),构建其任意生成树 \(T\),对于任意一条边 \(E\),如果 \(E \in T\),我们将 \(E_u,E_v\) 两端点分别异或上一个随机哈希值,我们可以将哈希值看作一个集合 \(val_u\),这样对 \(T\) 进行 dfs,同时维护 \(val_u = \bigoplus_{v \in sub_u} val_v\)

\(\textbf{Theory}\):如果在 \(u \to v\) 时有 \(val_v\)\(u \to v\) 为桥。

证明:

假设 \(u \to v\) 不为割边,那么一定有 \(r\),使得 \(v \to r,r \notin sub_u\)

如果这条边是树边,那么树上一定有环,矛盾。

如果这条边是非树边,因为 \(v \to r\),有 \(val_v \cap val_r \ne \varnothing\),因为 \(r \notin sub_u\),必有 \(val_u \cap (val_v \cap val_r) \ne \varnothing\)

我们得证 \(val_u\) 并不为空集,即 \(val_u \ne 0\)

证毕。\(\square\)

以下是一份代码,可以过掉洛谷 P11360。

#include<bits/stdc++.h>
#include<random>
#define int long long
using namespace std;
const int N = 1e5 + 100;
int n, m, val[N], vis[N];
vector<int> g[N];
mt19937_64 R(time(0));
int fa[N];
int find(int x) {if (fa[x] == x) return x;return fa[x] = find(fa[x]);
}
void dfs(int u, int fa) {vis[u] = 1;for (int e : g[u]) {if (e == fa) continue;dfs(e, u);val[u] ^= val[e];if (!val[e]) cout << u << ' ' << e << '\n';}
}
signed main() {ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);cin >> n >> m;for (int i = 1; i <= n; i++) fa[i] = i;for (int i = 1; i <= m; i++) {int u, v;cin >> u >> v;int fx = find(u), fy = find(v);if (fx != fy) {fa[fx] = fy;g[u].push_back(v), g[v].push_back(u);}else {int w = R();val[u] ^= w, val[v] ^= w;}}for (int i = 1; i <= n; i++) {if (!vis[i]) dfs(i, 0);}return 0;
}
http://www.gsyq.cn/news/60715.html

相关文章:

  • 完整教程:【2025最全】国内AIPPT工具排行榜
  • 关于powershell中的-哈希表-Hashtable-类型-说明-类似于python中的字典
  • CSP-S2025 T4 员工招聘 题解
  • 2025 GEO优化公司排名权威榜单解读:浙江四家标杆企业凭何突围?
  • 写给0-1岁的初创公司合伙人(101):天使轮与种子轮融资的条件解锁机制
  • Mac Unity 2018.dmg游戏工具 安装步骤 简单易懂教程(附安装包)
  • 102302147傅乐宜作业3
  • 2025中小学生AI学习机选购核心:5大品牌实测,提分才是硬通货!
  • 深入解析:DNS解析原理及工作流程详解
  • 6000 AI Program Topic 3~6
  • 洛谷 P1908:逆序对 ← 树状数组 + 离散化(数组 + sort + STL map)
  • P10977 Cut the Sequence 分析
  • 软件工程学习日志2025.11.25
  • IT外包与勒索软件:英国经济安全面临的技术风险
  • NumPy广播机制深度解析:为什么有时能加,有时报错?
  • STL常用功能
  • Rust 零拷贝技术:从所有权到专业的系统调用的性能优化之道
  • 2025年下半年奖牌/水晶奖杯/奖杯定制/定制厂家口碑推荐榜
  • 低代码平台选型指南:企业避坑指南与核心评估维度
  • IMX6D的LVDS调试
  • 题解:CF1746D Paths on the Tree
  • 解决Windows窗口在屏幕外的问题
  • ai论文工具推荐:助力学术创作效率提升的实用工具
  • 2025年国际发表必备!多语言AI论文写作工具TOP 3 深度测评
  • 外观检测设备有哪些?制造业主流方案及应用解析
  • 光学膜外观缺陷检测设备:技术创新与行业应用动态
  • 睡眠不好吃的益生菌选哪家好?热门产品解析
  • 热力图数据可视化,调研
  • 元聚变科技集团估值:AI与数据要素驱动的企业价值解析
  • 有助于睡眠的益生菌推荐几款,这些口碑品牌值得关注