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

树的重心 + 树的同构

树的重心

定义

树的重心指的是删掉节点\(u\)后,剩余的所有连通块中,节点数量最多的那个连通块的大小。

定理

  1. 深度之和最小的点就是重心
  2. 所有子树的大小不超过 \(\frac{n}{2}\)

解决方法

  1. 就是换根\(dp\)\(dp\)转移式为

\[dp_v = dp_u + n - sz_v * 2; \]

  1. 一个只需要一次\(dfs\)的好方法(That's good idea)

我们知道,当把节点 \(u\) 删除时,他会分成若干部分:以他直接相连的子儿子为根的若干子树

那么我们只需要算他子树中的最大的子树,即可,而另一部分,可以用 \(n - sz_u\) 表示大小,取最大值即可。

点击查看代码
int n;
vector<int> g[N];
vector<int> ans;
int Ans = 1e18;
int sz[N];void dfs(int u, int fa) {sz[u] = 1;int maxn = 0;for (auto v : g[u]) {if (v == fa) continue;dfs(v, u);sz[u] += sz[v], maxn = max(maxn, sz[v]);}maxn = max(maxn, n - sz[u]);if (maxn < Ans) Ans = maxn, ans.clear(), ans.push_back(u);else if (maxn == Ans) ans.push_back(u);
}

树的同构

感觉上难,其实十分的简。

我们以一道比较简单的紫题为例(这种紫随手切,但被hack了qwq)

[JSOI2016] 独特的树叶

你为什么不开,是不信任我吗?QAQ

算了,话不多说,因为说多了容易成废话。

解法

树上哈希。自己可以先去了解一下。

我们需要用到一个随机数,就用mt19937_64 rd(time(nullptr));了!

我们为了不被哈希冲突,所以用一个奇奇怪怪的函数!

ull f(ull x) {x ^= mask, x ^= x << 13, x ^= x >> 7, x ^= x << 17, x ^= mask;return x;
}

这个函数降低了哈希冲突的概率!

后面简单了,直接给代码吧!

点击查看代码
int n;
ull ans[N], G[N];
vector<int> g[N];mt19937_64 rd(time(nullptr));const ull mask = rd();ull f(ull x) {x ^= mask, x ^= x << 13, x ^= x >> 7, x ^= x << 17, x ^= mask;return x;
}void dfs1(int u, int fa) {ans[u] = 1;for (auto v : g[u]) {if (v == fa) continue;dfs1(v, u);ans[u] += f(ans[v]);}
}set<ull> s;void dfs2(int u, int fa) {for (auto v : g[u]) {if (v == fa) continue;G[v] = ans[v] + f(G[u] - f(ans[v]));s.insert(f(G[v]) + 1);dfs2(v, u);}
}

最后的答案自己想想!

http://www.jsqmd.com/news/362494/

相关文章:

  • 低代码平台选型指南:五大定位迥异的“数字搭档”解析
  • AES-GCM 2级秘钥管理
  • SuperMap GIS基础产品FAQ集锦(20260209)
  • 介绍下AES-CBC的实现
  • 麻导程共
  • 2026国内最新修复次抛精华TOP5推荐:术后修护/敏感肌护理优质品牌权威榜单发布,资质合规 + 场景匹配 + 临床验证 + 稳定供应,精准适配多场景护肤需求 - 品牌推荐2026
  • ▲4FSK调制解调+扩频解扩通信链路matlab误码率仿真
  • 完整教程:音乐生成模型综述:从符号作曲到音频域大模型、评测体系与产业化趋势
  • 动力仁金海龙胶囊:以科学认知,应对精力挑战 - 宏洛图品牌设计
  • 知识图谱是啥?与关系型数据库有何区别?
  • 非暴力沟通
  • 从看天吃饭到屏幕管田,智能设备守护农田提质增效
  • SSM智能新冠疫苗接种助手6hz40(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
  • 2026年APP开发与微信小程序开发服务商排行榜:深圳昊客网络凭什么成为中小企业首选? - 专业GEO营销推广
  • SSM智能线上教育mo0l5(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
  • 让大模型真正为你工作:一文读懂RAG与微调的选择逻辑
  • 2026国内最新美白防晒乳TOP5推荐:高倍养肤防晒权威榜单,资质合规 + 场景匹配 + 临床验证 + 稳定供应,外挡内白适配多场景需求 - 品牌推荐2026
  • 【开题答辩过程】以《基于SpringBoot和MySQL的家庭财务管理系统》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
  • 亲测有效!清吧互动大屏点歌实践分享
  • 动力仁金海龙——打破沉默的“男”题! - 宏洛图品牌设计
  • 执业医师考试题库推荐哪个 - 医考机构品牌测评专家
  • C++ 建立 理解
  • 亲测有效的酒吧互动点歌系统案例分享
  • 3DMAX种树画笔插件TreePainter使用方法详解
  • 执业医师考试题库怎么选?一位过来人的真诚分享 - 医考机构品牌测评专家
  • PHP 8.5 新特性速览:管道操作符、clone with、闭包增强与更多实用功能
  • 详解Linux网关下的ATT网络拨号与Python控制
  • linux 命令提示符 时间,在LINUX的命令提示符及CMD命令提示符中显示时间
  • 介绍两个管理工具 — 时间管理与PDCA
  • PHP 8.1+ 引入的 枚举(Enum) 类型