第二天叫醒我的不是鬧鐘,是夢想!
如果乙個數 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...