題目描述
味味最近對樹很感興趣,什麼是樹呢?樹就是有n個節點和n-1條邊形成的無環連通無向圖。
味味在研究過程中想知道,對於乙個無根樹,當節點i作為根的時候樹的高是多少。所謂樹高指的是從根節點出發,到離根節點最遠葉子節點所經過的節點的總數,詳見輸入輸出樣例1。味味現在遇到了一些煩心的事情,不想再繼續思考了,請你幫助她解決這個問題。
輸入 共n行。
第1行為乙個正整數n,表示樹的節點個數。
第2行到第n行裡,每行兩個用空格隔開的正整數a和b,表示a與b有連邊。
輸出 共n行,第i行表示以節點i為根時的樹高。
樣例輸入
4 1 4
2 4
3 4
樣例輸出
3 3
3 2
提示 對於 100%的資料有 1≤n≤500000,1≤a,b≤n。
題解 樹上dp,轉移根,記錄往上走的最大深度。
**
#include
#define n 500005
using namespace std;
inline int
read()
int tot,n,ans[n],ret[n*2],next[n*2],head[n];
int dep[n],fa[n];
int ins(int u,int v)
void dfs1(int u)
}}void dfs2(int u,int d)
else
if (dep[v]>max2) max2=dep[v],to2=v;}}
for (int i=head[u];i;i=next[i])
}}int main()
dfs1(1);
dfs2(1,0);
for (int i=1;i<=n;i++)
printf("%d\n",ans[i]);
return
0;}
動物統計加強版(字典樹)
時間限制 3000 ms 記憶體限制 150000 kb 難度 4 描述 在美麗大興安嶺原始森林中存在數量繁多的物種,在勘察員帶來的各種動物資料中有未統計數量的原始動物的名單。科學家想判斷這片森林中哪種動物的數量最多,但是由於資料太過龐大,科學家終於忍受不了,想請聰明如你的acmer來幫忙。輸入 第...
NYOJ 290 動物統計加強版 字典樹
經典的字典樹的問題,幾乎可以來當模版來用了,就留下來了 不過貌似用運算子過載排序 不知道是不是 也能過。需要注意的是開闢乙個新的記憶體時下乙個指標一定要指向null 字典樹 include include includeint max char ans 101 struct node struct ...
nyoj 290 動物統計加強版 《字典樹》
時間限制 3000 ms 記憶體限制 150000 kb 難度 4 描述 在美麗大興安嶺原始森林中存在數量繁多的物種,在勘察員帶來的各種動物資料中有未統計數量的原始動物的名單。科學家想判斷這片森林中哪種動物的數量最多,但是由於資料太過龐大,科學家終於忍受不了,想請聰明如你的acmer來幫忙。輸入第一...