CodeForces 120F|Spiders|树形DP|求树最长链
来源:互联网 发布:开源软件二次开发 编辑:程序博客网 时间:2024/06/16 20:38
给出n棵树,求这些树以某种方式连接在一起后的最长链长和。
令f[i]表示在i子树中能走到的最长步数。有f[i]=max{f[son[i]]+1}
那么对于每个点i,有答案为max j∈son[i] {f[son[i]-{j}]+f[j]+1}
#include <cstdio>#include <cstring>#include <algorithm>using std::max;const int N = 101, M = 2 * N;int far[N], len, to[M], next[M], head[N], cnt = 0;void add(int u, int v) { next[++cnt] = head[u]; head[u] = cnt; to[cnt] = v;}void dfs(int u, int fa) { for (int i = head[u]; i; i = next[i]) if (to[i] != fa) { dfs(to[i], u); len = max(len, far[u] + far[to[i]] + 1); far[u] = max(far[u], far[to[i]] + 1); }}int main() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); int t, n, i, u, v, ans = 0; scanf("%d", &t); while (t--) { scanf("%d", &n); cnt = 0; memset(head, 0, sizeof head); memset(far, 0, sizeof far); for (i = 1; i < n; i++) { scanf("%d%d", &u, &v); add(u, v); add(v, u); } len = 0; dfs(1, 0); ans += len; } printf("%d", ans); return 0;}
0 0
- CodeForces 120F|Spiders|树形DP|求树最长链
- codeforces 120F Spiders 树形DP
- codeforces 120F Spiders
- CodeForces 120F - 简单的树形DP
- 树形dp-CodeForces 581F
- CodeForces 581F Contest Page 【树形dp】
- School Regional Team Contest, Saratov, 2011-F. Spiders-求树直径
- Codeforces 633 F The Chocolate Spree(树形dp,两条不相交链节点权值和最大)
- Codeforces #322 div2. F Zublicanes and Mumocrates 树形dp
- CodeForces 581F Zublicanes and Mumocrates 树形DP
- CodeForces 633F The Chocolate Spree(树形DP)
- Codeforces 835F Round #427 Div2F :树形DP
- hdu2196Computer 经典树形dp 在树上求最长距离
- hdu2196树形dp求任一点的最长路
- 树形dp ,求最大路径权值,最长路径
- #bzoj2404#最长链(树的直径/树形DP)
- CF 581F 树形dp
- Codeforce 581F(树形dp)
- 《leetCode》:Valid Number
- 轻松实现 自定义slidingMenu+viewPager+scrollView
- 2015年9-10
- Microsoft Word 插件开发——Word外接应用程序开发
- 用第三方框架GDataXMLNode解析XML数据:
- CodeForces 120F|Spiders|树形DP|求树最长链
- 20151129-01 Android 中Message,MessageQueue,Looper,Handler详解+实例
- MVC(Model-View-Controller)
- 如何判断三角形以及三角形类型
- HDU-计算机学院大学生程序设计竞赛(2015’11)1001 搬砖(贪心)
- NSURLRequestCachePolicy—iOS缓存策略
- python 基础学习笔记1
- Unity leapmotion开发实录(2)
- strlen和sizeof有什么区别?