树的重心
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 · 200 阅读 · 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 · 247 阅读 · 0 评论
分享