(file io): input:tree.in output:tree.out
時間限制: 1000 ms 空間限制: 131072 kb 具體限制
goto problemset
題目描述
味味最近對樹很感興趣,什麼是樹呢?樹就是有n
nn個點和n−1
n-1n−
1條邊形成的無環連通無向圖。
今年2012
2012
2012
年浙江省隊選拔賽中味味發現了乙個樹中最長鏈(就是樹當中距離最遠的點對)試題,於是她著手對樹進行了一些研究和思考。
味味在研究過程中想知道,對於乙個無根樹,當節點i作為根的時候樹的高是多少。所謂樹高指的是從根節點出發,到離根節點最遠葉子節點所經過的節點的總數,詳見輸入輸出樣例111。
味味現在遇到了一些煩心的事情,不想再繼續思考了,請你幫助她解決這個問題。
輸入
輸入檔名為 tre
e.in
tree.in
tree.i
n,共 n
nn 行。第一行為乙個正整數 n
nn,表示樹的節點個數。第2
22 行到第 n行裡,每行兩個用空格隔開的正整數a
aa 和b
bb,表示a
aa 與b
bb有連邊。
輸出
輸出檔案tre
e.ou
ttree.out
tree.o
ut共n
nn 行,第i行表示以節點i為根時的樹高。
樣例輸入
【樣例輸入1】
31 2
2 3【樣例輸入2】
41 4
2 43 4
樣例輸出
【樣例輸出1】32
3【樣例輸出2】33
32資料範圍限制
對於30
3030
%的資料有 n
≤100
n≤ 100
n≤100。
對於60
6060
%的資料有 n
≤300
n≤ 300
n≤300。
對於100
10010
0%的資料有 1≤n
≤1000,1
≤a,b
≤n
1≤n≤1000,1≤a,b≤n
1≤n≤10
00,1
≤a,b
≤n提示
解題思路
可以用spf
aspfa
spfa
來做這道題
**
#include
#include
#include
#include
#include
#include
#include
using namespace std;
long long n,a1,b,l,head[
1010
],q[
10100
],v[
10100
],h,t,ans,dis[
10010];
struct ca[
10010];
void
add(int x,int y)
void
bfs(int s)}}
}int main()
for(int i=
1;i<=n;i++
)}
開花 紀中1742 線段樹
description 在遙遠的火星上,上面的植物非常奇怪,都是長方形的,每個植物用三個數來描述 左邊界l 右邊界r以及高度h,如下圖所示描述乙個植物 l 2,r 5和h 4。每天都有乙個新植物長出來,第一天的植物高度為1,後面每天長出的植物比前一天的高1。當乙個新植物長出來的時候,跟其他植物的水平...
開花 紀中 1435 線段樹
在遙遠的火星上,上面的植物非常奇怪,都是長方形的,每個植物用三個數來描述 左邊界l 右邊界r以及高度h,如下圖所示描述乙個植物 l 2,r 5和h 4。每天都有乙個新植物長出來,第一天的植物高度為1,後面每天長出的植物比前一天的高1。當乙個新植物長出來的時候,跟其他植物的水平線段相交處會長出一朵小花...
2017紀中10 24 合影 樹型DP 組合數學
題面 因為每個人只有乙個要求,假如a要求在b左邊,a就向b連一條邊的話,就是乙個帶環樹。當然,有環直接無解。所以剩下的是森林。我們把子樹看成乙個子問題,假如知道了子樹內部的答案如何轉移到父親。設當前轉移x,x的所有子樹都應該安排在x左邊,也就是首先有size x 1個空來安排,每安排乙個子樹剩下的空...