數字轉換 樹形dp之樹的最長路徑應用

2021-09-29 21:02:50 字數 891 閱讀 1737

第二天叫醒我的不是鬧鐘,是夢想!

如果乙個數 x 的約數之和 y(不包括他本身)比他本身小,那麼 x 可以變成 y,y 也可以變成 x。

例如,4 可以變為 3,1 可以變為 7。

限定所有數字變換在不超過 n 的正整數範圍內進行,求不斷進行數字變換且不出現重複數字的最多變換步數。

輸入格式

輸入乙個正整數 n。

輸出格式

輸出不斷進行數字變換且不出現重複數字的最多變換步數。

資料範圍

1≤n≤50000

輸入樣例:

7輸出樣例:

3樣例解釋

一種方案為:4→3→1→7。

#include.h>

using namespace std;

const int n

=1e5+10

;int h[n]

,e[n

],ne[n]

,idx;

int n,st[n]

,ans;

int sum[n]

;void

add(int a,int b)

int dfs

(int u)

ans=

max(ans,d1+d2)

;return d1;

}int main()

}for

(int i=

1;i<=n;i++)if

(!st[i]

)dfs

(i);

cout<}

樹形DP 樹的最長路徑

給定一棵樹,樹中包含 nn 個結點 編號11 nn 和 n 1n 1 條無向邊,每條邊都有乙個權值。現在請你找到樹中的一條最長路徑。換句話說,要找到一條路徑,使得使得路徑兩端的點的距離最遠。注意 路徑中可以只包含乙個點。輸入格式 第一行包含整數 nn。接下來 n 1n 1 行,每行包含三個整數 ai...

1072 樹的最長路徑(樹形DP)

題目 題意 n個點n 1條邊的無向圖樹,每條邊都有乙個權值,可正可負,求最大權值。題解 樹形dp,任取乙個點為根節點,記錄每個節點往下搜的所有路徑的權值,找到最大權值和第二大權值,以這個點為核心的最大權值的路徑就是這倆權值和。include include include include inclu...

DP 樹形 DP 數字轉換

並不容易看出的模型 在n以內的數字和她們不包括自身的約數和 要求小於這個數本身 構成的森林中找到最長的樹的直徑。上述模型成立是因為每個數字的約數和 不包括自己,下同 是乙個定值,我們正好根據大小關係建立有向樹來進行dfs,根據樹的直徑求法,就可以得到結果了。include include inclu...