倍增\(dp\),其实就是\(dp\)有一维为走多少步,这个东西很大,没法硬枚举,恰好要求的是最值/路径和之类的东西,可将走多少步这一维\(i\)变为走\(2^i\)。
注:\(long\ long\)用位运算不能用\(1<<i\),要用\(1LL<<i\)(例1,例2)
倍增可用于维护树上某链最值/路径和,可用来加速dp
同时,树上dp不一定由下向上推,也可能反过来,主要看哪个方向的初值简单。例
倍增\(dp\),其实就是\(dp\)有一维为走多少步,这个东西很大,没法硬枚举,恰好要求的是最值/路径和之类的东西,可将走多少步这一维\(i\)变为走\(2^i\)。
注:\(long\ long\)用位运算不能用\(1<<i\),要用\(1LL<<i\)(例1,例2)
倍增可用于维护树上某链最值/路径和,可用来加速dp
同时,树上dp不一定由下向上推,也可能反过来,主要看哪个方向的初值简单。例