树的重心
hesorchen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU2228栈、深搜、树哈希/同构
题目 Same or not 给出两个01字符串,表示两棵树上的深搜方式。其中0表示向深层递归,1表示回溯。问两个字符串有没有可能是在同一颗树上生成的。 求解 根据深搜的性质,先用栈建树。建好两棵树之后,求出树的重心,然后以重心为根,进行树哈希,利用哈希值判断两棵树是否同构即可。 代码 #include <bits/stdc++.h> using namespace std; const int N = 1e4 + 5; vector<int> mp[N]; int siz[N]原创 2021-08-18 20:05:50 · 225 阅读 · 0 评论 -
HDU6567树的重心、换根DP
题目 Cotree 用一条边将两颗树连接起来,使得点对之间的距离和最小。 求解 找出两棵树的重心,连接重心,换根DP求一下每条边的贡献即可。 #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; vector<int> vec[N]; bool vis[N]; int nd1, nd2; int N1, N2; int siz[N]; void pre(int u, int fa) { vi原创 2021-08-18 16:45:18 · 278 阅读 · 0 评论
分享