浅谈树上启发式合并(dsu on tree)
创始人
2024-03-21 22:08:18
0

这就是一个优雅的暴力。

引入

我们来看一道题:

给出一棵树,每个节点都有一个颜色。

查询一棵树中以每个节点为根的子树中颜色种类的多少。

因为子树之间会互相影响,我们就只能对于每个节点求一次,这时候暴力的时间复杂度就是 O(N2)O(N^2)O(N2) 的。

我们可以用 dsuontreedsu\ on\ treedsu on tree 来达到 O(n⋅logn)O(n\cdot log_n)O(n⋅logn​) 的时间复杂度。

思路

我们先来看下暴力的代码:

void update(int x, int fa, int flag) {num[color[x]] += flag;if (num[color[x]] == 0 && flag == -1)cnt--;if (num[color[x]] == 1 && flag == 1)cnt++;for (int i = last[x]; i; i = E[i].next)if (E[i].to != fa)update(E[i].to, x, flag);
}
void dfs(int r, int fa) {// 求子树r中的信息, fa为r的父亲for (int i = last[r]; i; i = E[i].next) // 遍历r的邻接点if (E[i].to != fa)dfs(E[i].to, r);update(r, fa, 1);// updata就是用来求以r为根的子树的颜色种类个数ans[r] = cnt;update(r, fa, -1);// 清空数组
}

我们来想想如何优化

我们知道,一个节点可以由多个儿子的信息得来,但是儿子的答案又不能互相影响,于是我们就可以保留一个儿子的答案用到我们这个子树中。

为了更快,我们肯定是选择儿子中最大的那个来继承。

于是我们就可以得到代码。

void dfs(int x, int fa) {for (int i = last[x]; i; i = E[i].next)if (E[i].to != son[x] && E[i].to != fa) {dfs(E[i].to, x);// 我们先把除了需要继承的儿子的答案求出来update(tv, x, -1);// 因为不继承这个儿子,所以就清空数组}if (son[x])dfs(son[x], x);// 求出需要继承的儿子,此时就不清空数组num[color[x]]++;//注意!!!一定要加上自己这个节点!!!if (num[color[x]] == 1)cnt++;for (int i = last[x]; i; i = E[i].next){if (E[i].to != son[x] && E[i].to != fa)update(E[i].to, x, 1);//因为我们除了需要继承的儿子都没有加进答案里面,所以需要加入答案ans[x] = cnt;}
}

我们来分析一下时间复杂度。

因为这实际上很像树链剖分,于是我们就将轻边和重链引入进来。

我们可以发现,一个子树会被 updataupdataupdata 到的次数就是从该节点到根的路径中有多少轻边。

对于每个点,假设它和它的父亲的连边为轻边,则他的父亲的子树大小一定是该节点的两倍,所以可以证明一个节点到根的路径最多有 lognlog_nlogn​ 条轻边,所以每个节点最多被 updataupdataupdata 到 lognlog_nlogn​ 次,一共有 nnn 个点,所以时间复杂度就是 O(n⋅logn)O(n\cdot log_n)O(n⋅logn​) 。

相关内容

热门资讯

实干笃行多措并举奋力夺取“开门... 转自:沈阳日报  铆足干劲开新局,奋楫争先创佳绩。今年一季度,市自然资源局紧扣服务经济社会高质量发展...
澳洲公会:内地小微企业2024... 本报记者 杜丽娟 北京报道小微企业作为国民经济的组成部分,在促进就业、驱动经济增长、推动科技创新及维...
今年开展职业技能培训和岗位练兵... 转自:辽宁日报 本报讯 记者徐铁英报道 “技能照亮前程·匠才助推振兴”2025年度专项培训行动目前正...
用中国创新赋能全球市场 转自:中国经营网张硕在前不久刚闭幕的2025上海车展期间,“中国汽车技术创新赋能全球发展”成为热议话...
新青两地艺术家青海湖畔联袂献艺 5月9日,新疆民间艺术季优秀节目巡演青海站活动走进青海湖二郎剑景区。 本报讯(西海新闻记者 吴梦婷 ...
“民法典宣传月·送法进企业宣传... 转自:辽宁日报 本报讯 记者黄岩报道 今年5月是第五个“民法典宣传月”,连日来,全省各地各部门积极投...
行走百个社区 叩开万户家门 转自:沈阳日报  “以前咨询涉及残疾人的法律法规时无从下手,现在法律服务直接‘送上门’!”坐在轮椅上...
美国财长贝森特:避免债务触及上...   美国财政部长贝森特致信国会议员,称财政部动用特别会计手段以避免突破联邦债务上限的能力,最早可能在...
“人设”:视觉时代创作新手法 转自:光明网  【面面观·“人设”与新媒介文艺创作】  作者:李皓颖(北京大学中文系博士研究生)  ...
HAI乐园超级运动公园项目正式... 转自:沈阳日报  本报讯(沈阳日报、沈报全媒体记者张晶)5月9日,以运动为主题特色,搭配餐饮休闲、二...
中国品牌汽车亮相2025马来西... 这是5月8日在马来西亚雪兰莪州沙登拍摄的2025马来西亚车展媒体预览会现场。 2025年马来西...
引秋生手里 藏月入怀中——评《... 转自:光明网  作者:袁 坤(浙江省博物馆馆员)  《缮扇——传统纸扇装裱修复及保护》一书,近来由岭...
国办印发《关于进一步加强 困境... 新华社北京5月9日电  日前,国务院办公厅印发《关于进一步加强困境儿童福利保障工作的意见》(以下简称...
西宁市城中区 开展杨柳絮清理行... 本报讯(西海新闻记者 燕卓)每年5月,杨柳絮随风漫天飞舞,给市民的生活带来烦恼。为最大限度减少飘絮问...
说说泰山封禅大典那些事儿   “五一”期间,由泰安文旅集团打造的《中华泰山·封禅大典》2025升级改造版迎来首演。作为泰山封禅...
为中俄关系发展注入新的动能   新华社北京5月9日电 应俄罗斯联邦总统普京邀请,国家主席习近平于5月7日至10日对俄罗斯进行国事...
成功研制牦牛心肝肺营养肽产品 本报海北讯 (记者 王晶) 5月8日,记者从海北藏族自治州刚察县委宣传部获悉,刚察县与相关单位合作,...
我省重点交通项目捷报频传 积石峡黄河特大桥主拱肋合龙。 同赛项目西卜沙隆务河特大桥施工现场。 西宁曹家堡机场东进场路施工...
国际巨头,确认大裁员! 5月9日,松下集团宣布,计划于2025年度至2026年度在全球范围内裁员1万人,其及5000名日本员...
深入贯彻中央八项规定精神学习教... 本报讯(记者 莫昌伟)按照中央党的建设工作领导小组统一部署,5月9日,深入贯彻中央八项规定精神学习教...