树上统计问题【一】
在树上,对于每个点
要求用总共
我们可以把要求的
只要点数
给原树随便定个根,那么形成的连通块分别是:
孤立点。构成 个连通块。 的每个儿子对应的子树。一个儿子,对应一个子树,对应 个连通块。 的所有祖先。如果 不是根,这里就构成 个连通块。
树上一次 dfs,上面三种连通块的大小都能很方便得到。于是做到总复杂度
例题:https://www.luogu.com.cn/problem/P4630。
该题先构建广义圆方森林,然后圆点设权
因为是广义圆方森林,应该对每棵树分别统计答案,将每棵树的大小作为上面的
而且这个题要统计的
【拓展】
在 无向图 上,对于每个点
要求用总共
其实就是这个题 https://www.luogu.com.cn/problem/P3469
题目还是等价于断开
这次,我们构建 dfs 搜索树,然后在树上 dfs,接着沿用上面的做法。但是,删除点
所以当且仅当
tarjan 同时统计就可以啦。
分类:
学习笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】