GYM 101673F(树计数)
2024-08-29 11:24:07
树上每个割点计算一下各个size的组合相乘再相加为第一问答案,取最大的;再把本答案中最大的两个size相乘减掉,为第二问答案。
const int maxn = 1e4 + 5;
int n, size[maxn], ans, b;
vector<int> adj[maxn];
void dfs(int cur, int fa) {
size[cur] = 1;
vector<int> v;
for (auto i : adj[cur]) {
if (i == fa) continue;
dfs(i, cur);
size[cur] += size[i];
v.push_back(size[i]);
}
if (v.empty()) return;
v.push_back(n - size[cur]);
sort(v.begin(), v.end());
int tmp = 0;
for (auto i : v) {
tmp += i * (n - i - 1);
}
if (ans < tmp / 2) {
ans = tmp / 2, b = ans - v.back() * v[v.size() - 2];
}
}
int main() {
read(n);
rep(i, 1, n) {
int u, v;
read(u), read(v);
adj[u].push_back(v);
adj[v].push_back(u);
}
n++;
dfs(0, -1);
printf("%d %d\n", ans, b);
return 0;
}
最新文章
- Django实现表单验证、CSRF、cookie和session、缓存、数据库多表操作(双下划綫)
- 解决未能加载文件或程序集“Newtonsoft.Json ....";或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
- 屠龙之路_大杀技之倚天屠龙_TenthDay
- Node.js 路由
- 详细解读MySQL中的权限
- JS倒计时代码
- 【WildCard Matching】cpp
- Java-数据结构与算法-二分查找法
- 浅谈Oracle函数返回Table集合
- WPF学习拾遗(二)TextBlock换行
- netty最快?
- DVWA笔记之一:brute Force
- Sql Server数据库之触发器
- grid和flex区别
- Docker Swarm 配置文件存储
- android 加载图片
- hdu4073 Lights
- pgm1
- 【WP8】ResourceDictionary
- centos安装jdk1.7.80的rpm包