hihocoder 第十一周 樹中的最長路

2021-06-25 20:27:00 字數 940 閱讀 1950

題意:找出二叉樹中相距最遠的兩個節點的距離。

輸入每個測試點(輸入檔案)有且僅有一組測試資料。

每組測試資料的第一行為乙個整數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,表示給出的這棵樹中距離最遠的兩個結點之間相隔的距離。

樣例輸入

8

1 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...

第十一周小結

一周又結束了,轉眼之間,大半個學期都過去了。第一件事就是體育考試,這次考的是三步上籃,不怎麼好,只投進了兩顆球,剛好及格。對於乙個完美主義的我來說感覺就是一次敗筆,同時也怨自己沒有多加練習,好了過去的就讓它過去吧,沒有什麼大不了的,明天會更好。第二件事,就是學生會的幹部培訓。在學生會工作了大半年了,...