數字轉換 樹形DP

2022-02-04 07:11:15 字數 461 閱讀 3058

如果乙個數x的約數和(不包括它本身,下同)比它本身小,那麼x可以變成它的約數和;如果對於某個y>x且y的約數和為x,那麼x也可以變成y。例如,4可以變為3,1可以變為7。限定所有的數字變換在不超過n的正整數範圍內進行,求不斷進行數字變換且沒有重複數字出現的最多變換步數。

輸入乙個正整數n

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

#include #include #define maxn 50005

using namespace std;

int n,sum[maxn],ans,m1[maxn],m2[maxn];

int main()

for(int i=1;i<=n;++i) ans=max(ans,m1[i]+m2[i]);

printf("%d\n",ans);

return 0;

}

DP 樹形 DP 數字轉換

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

acwing 1075 數字轉換 (樹形DP)

首先,對於小於n的每個數,我們可以確定它的約數之和 不包括自己 是固定的,就像4的約數之和一定是3,不可能是其他的,那麼我們就可以將2 n的每個數的約數之和求出sum i 對於sum i i 的邊 因為對於每個i,sum i 是唯一確定的 也就是說每個兒子都有唯一乙個父節點,那麼我們最終就會構成森林...

AcWing1075 數字轉換 樹形DP 題解

題目傳送門 如果乙個數 x 的約數之和 y 不包括他本身 比他本身小,那麼 x 可以變成 y,y 也可以變成 x。例如,4 可以變為 3,1 可以變為 7。限定所有數字變換在不超過 n 的正整數範圍內進行,求不斷進行數字變換且不出現重複數字的最多變換步數。輸入格式 輸入乙個正整數 n。輸出格式 輸出...