树上每个割点计算一下各个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;
}

最新文章

  1. Django实现表单验证、CSRF、cookie和session、缓存、数据库多表操作(双下划綫)
  2. 解决未能加载文件或程序集“Newtonsoft.Json ....&quot;或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
  3. 屠龙之路_大杀技之倚天屠龙_TenthDay
  4. Node.js 路由
  5. 详细解读MySQL中的权限
  6. JS倒计时代码
  7. 【WildCard Matching】cpp
  8. Java-数据结构与算法-二分查找法
  9. 浅谈Oracle函数返回Table集合
  10. WPF学习拾遗(二)TextBlock换行
  11. netty最快?
  12. DVWA笔记之一:brute Force
  13. Sql Server数据库之触发器
  14. grid和flex区别
  15. Docker Swarm 配置文件存储
  16. android 加载图片
  17. hdu4073 Lights
  18. pgm1
  19. 【WP8】ResourceDictionary
  20. centos安装jdk1.7.80的rpm包

热门文章

  1. Tomcat之catalina.out日志分割
  2. 人生苦短之Python的urllib urllib2 requests
  3. 关于Zookeeper
  4. Java 8新特性之旅:使用Stream API处理集合
  5. Django_model进阶
  6. .Net-Mongodb学习大全网址
  7. hdu-4991 Ordered Subsequence(dp+树状数组)
  8. Messes in Reading Source Coding of SSD
  9. DBCPTool
  10. JavaScript 日期处理类库 moment