hdu 4607 Park Visit
来源:互联网 发布:预决算软件 编辑:程序博客网 时间:2024/04/28 06:28
求树的直径
#include <stdio.h> #include <string.h>const int MAXN = 100010;struct node{int to, next;}data[MAXN*2];int head[MAXN], n, m, sz;void add(int u, int v){data[sz].to = v;data[sz].next = head[u];head[u] = sz++;data[sz].to = u;data[sz].next = head[v];head[v] = sz++;}int fnum[MAXN], snum[MAXN], cnt[MAXN];void dfs(int u, int pre){int v, i;fnum[u] = snum[u] = 0;for (i = head[u]; ~i; i=data[i].next){if ( (v=data[i].to) == pre) continue;dfs(v, u);if (fnum[v]+1 > fnum[u]){snum[u] = fnum[u];fnum[u] = fnum[v]+1;}else if (fnum[v]+1 > snum[u]){snum[u] = fnum[v]+1;}}i = head[u];if (u != 1)if (i == -1 || data[i].next == -1)/// leaf node{fnum[u]=snum[u] = 0;cnt[u] = 0;return;}int c1=0, c2=0;for (i = head[u]; ~i; i=data[i].next){if ( (v=data[i].to) == pre) continue;if (fnum[u] == fnum[v]+1) c1++;else if (snum[u] == fnum[v]+1) c2++;}if (c1 >= 2){cnt[u] = fnum[u]*2;}else if (c1 >= 1 && c2 >= 1){cnt[u] = fnum[u]+snum[u];}elsecnt[u] = fnum[u];}int main(){#ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin);#endif // ONLINE_JUDGEint t;scanf("%d", &t);while (t--){scanf("%d%d", &n, &m);sz = 0;memset(head, -1, sizeof head);for (int i = 1; i< n; i++){int u, v;scanf("%d%d", &u, &v);add(u, v);}dfs(1, -1);int mx = 0;for (int i = 1; i<= n; ++i){if (cnt[i] > mx) mx=cnt[i];}++mx;for (int i = 0; i< m; ++i){scanf("%d", &sz);if (sz <= mx)printf("%d\n", sz-1);elseprintf("%d\n", mx-1+(sz-mx)*2);}} return 0;}
- hdu 4607 Park Visit
- hdu 4607 Park Visit
- hdu - 4607 - Park Visit
- hdu 4607 Park Visit
- hdu-4607-Park Visit
- HDU 4607 Park Visit
- HDU 4607 Park Visit
- HDU 4607 Park Visit
- hdu 4607 Park Visit
- hdu 4607 Park Visit
- hdu 4607 Park Visit
- HDU - 4607 Park Visit
- HDU 4607 Park Visit
- HDU 4607 Park Visit
- hdu 4607 Park Visit dfs
- hdu 4607 Park Visit (DFS)
- hdu 4607 Park Visit 贪心
- HDU 4607 Park Visit 解题报告
- Hdu 4691 Front compression
- oracle误删除数据的恢复方法
- PHP 等比缩放 缩略图 类
- Java并发系列(一)线程安全基础
- 后缀数组 模板
- hdu 4607 Park Visit
- eclipse 重要的使用方法 和 java开发小技巧
- linux traceroute:(显示路由信息)
- writing-mode显示方式
- 关于JMS与SPRING的整合实例(基于Apache ActiveMQ)
- HDU 1211
- asp.net 密码框
- There is a cycle in the hierarchy解决办法
- Android调用WIFI设置