給定一棵樹,樹中每條邊都有乙個權值,樹中兩點之間的距離定義為連線兩點的路徑邊權之和。樹中最遠的兩個節點(兩個節點肯定都是葉子節點)之間的距離被稱為樹的直徑,連線這兩點的路徑被稱為樹的最長鏈。後者通常也可稱為直徑。
我們設1號節點為根節點,那麼最短路徑則是到根節點最遠的乙個節點與次遠的乙個節點的距離之和
#include
using
namespace std;
const
int maxn=
100005
;const
int maxm=
1000005
;int dp[maxm]
;vector<
int> v[maxn]
;int n,ans;
bool f[maxn]
;voiddp(
int x)
}int
main()
f[1]=
1;dp(
1);printf
("%d\n"
,ans)
;return0;
}
To Heart 題解 樹的直徑
給定一棵樹,樹中每條邊都有乙個權值,樹中兩點之間的距離定義為連線兩點的路徑邊權之和。樹中最遠的兩個節點 兩個節點肯定都是葉子節點 之間的距離被稱為樹的直徑,連線這兩點的路徑被稱為樹的最長鏈。後者通常也可稱為直徑。我們設1號節點為根節點,那麼最短路徑則是到根節點最遠的乙個節點與次遠的乙個節點的距離之和...
C 題解 樹的直徑
樹中兩點間的不重複經過的邊和點道路稱為兩點的路徑,路徑的長度 路徑上所經邊的長度和 稱為兩點的距離。圓的直徑是乙個圓的最長的一條弦,而樹的直徑是樹中兩點間最長的路徑。通常用乙個無序點對 x,y 表示一棵樹的直徑。現在輸入乙個有n個結點的樹,結點編號為1到n,假設結點1為根。試求樹的直徑。輸入格式 輸...
To Heart 題解 戳西瓜
請不要吝嗇你的點讚!有 n 個西瓜,編號為0 到 n 1,每個西瓜上都標有乙個數字,這些數字存在陣列 nums 中。現在要求你戳破所有的西瓜。每當你戳破乙個西瓜 i 時,你可以獲得 nums left nums i nums right 個硬幣。這裡的 left 和 right 代表和 i 相鄰的兩...