DP 數字轉換 dp求樹的最長鏈問題

2021-09-11 18:00:39 字數 478 閱讀 3897

藍本書p308

mx1存最大 mx2存次大 mx1[i]+mx2[i]是經過i點的最長鏈(一半加一半)

關於西街(細節):

first_deal()裡面的j迴圈必須從2開始 從1開始會重複計算 比如i=1 j=2和i=2 j=1重複

構建數的思想過程(敲黑板)

#include#include#include#include#includeusing namespace std;

int n;

int as;

int sum[60000];

int mx1[60000],mx2[60000];

void first_deal()

void work1()

else if(mx1[i]+1>mx2[sum[i]])

mx2[sum[i]]=mx1[i]+1; }}

int main()

大臣的旅費 樹型dp 求樹最長鏈

題目描述 很久以前,t王國空前繁榮。為了更好地管理國家,王國修建了大量的快速路,用於連線首都和王國內的各大城市。為節省經費,t國的大臣們經過思考,制定了一套優秀的修建方案,使得任何乙個大城市都能從首都直接或者通過其他大城市間接到達。同時,如果不重複經過大城市,從首都到達每個大城市的方案都是唯一的。j...

20160804 最長鏈 樹分治?樹DP?

題目大意 給一顆樹,求每個節點到其他所有節點的距離中最大的 使用dfs序和節點size維護乙個點的子樹,對於每個節點,只考慮過這個點的路徑,則可以用最長子鏈更新所有非最長鏈所在子樹的所有節點,用次長子鏈更新最長鏈所在子樹的所有節點。注意,為防止只有一條鏈,每個節點ans值的初值應是深度 向上一條鏈 ...

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

第二天叫醒我的不是鬧鐘,是夢想!如果乙個數 x 的約數之和 y 不包括他本身 比他本身小,那麼 x 可以變成 y,y 也可以變成 x。例如,4 可以變為 3,1 可以變為 7。限定所有數字變換在不超過 n 的正整數範圍內進行,求不斷進行數字變換且不出現重複數字的最多變換步數。輸入格式 輸入乙個正整數...