題意:找出二叉樹中相距最遠的兩個節點的距離。
輸入每個測試點(輸入檔案)有且僅有一組測試資料。
每組測試資料的第一行為乙個整數n,意義如前文所述。
每組測試資料的第2~n行,每行分別描述一根木棍,其中第i+1行為兩個整數ai,bi,表示第i根木棍連線的兩個小球的編號。
對於20%的資料,滿足n<=10。
對於50%的資料,滿足n<=10^3。
對於100%的資料,滿足n<=10^5,1<=ai<=n, 1<=bi<=n
小hi的tip:那些用陣列儲存樹邊的記得要開兩倍大小哦!
輸出對於每組測試資料,輸出乙個整數ans,表示給出的這棵樹中距離最遠的兩個結點之間相隔的距離。
樣例輸入
81 21 3
1 44 5
3 66 7
7 8
樣例輸出
6
遞迴求解,對於每乙個樹或者子樹來說,最長的距離是一棵子樹中最長的距離l1(+1)加上另一棵子樹最長的距離l2(+1)( maxlen = l1 + l2 + 2)
#include #include using namespace std;
vector< vector> g(100005);
int ans = 0;
int dfs(int pre, int cur) //更新長度
else l2 = max(l, l2);
}ans = max(ans, l1+l2+2); //對於每一棵子樹的根節點都更新一次最終的最大長度
return l1+1;
}int main()
dfs(-1, 0);
cout << ans << endl;
return 0;
}
OSG VS 第十一周
成果總結 1.關於獲取模型的世界座標 問了師姐,師姐給我講解了一些模型結構上的東西,指了個大致方向,說實話半懂不懂,回來自己試了試,沒有成功。正巧經理來跟我討論下一步的計畫,我就跟他講了座標的問題。第二天他告訴我說,目前沒有現成的介面可以用 他也跟師姐討論了,獲取頂點座標之後再區分有效可用的,很麻煩...
第十一周作業
1 tabcontrol imagelist panel功能演示 2 timer picturebox splitcontainer contextmenustrip控制項功能演示 設定三個控制項的以下屬性和事件 a.picturebox控制項的三個屬性 picture.image 匯入資源 pic...
第十一周小結
一周又結束了,轉眼之間,大半個學期都過去了。第一件事就是體育考試,這次考的是三步上籃,不怎麼好,只投進了兩顆球,剛好及格。對於乙個完美主義的我來說感覺就是一次敗筆,同時也怨自己沒有多加練習,好了過去的就讓它過去吧,沒有什麼大不了的,明天會更好。第二件事,就是學生會的幹部培訓。在學生會工作了大半年了,...