做這個題還是比較順手的,起碼做起來挺舒服的。他讓我們求使所有葉子節點到根節點距離一樣的代價,那麼作為一顆子樹來說首先就要滿足這點,因為再往上走的路徑都是一樣的,因此我們需要先求所有子樹的最大深度,然後答案=(子樹最大深度-子樹蛾子子樹最大深度-子樹到其蛾子的距離+修改蛾子子樹的代價)
#include#include#include
using
namespace
std;
long
long dp[500050],shu[500050
];int n,roo,tail,x,y,z,head[500050
];struct
inter[
1000010
];inline
void build(int f,int l,int
c),head[f]=tail;
ter[++tail]=(in),head[l]=tail;
}void dfs(int ro,int
fa)
for(int i=head[ro];i!=-1;i=ter[i].ne)
}int
main()
洛谷P1131 ZJOI2007 時態同步
小qqq在電子工藝實習課上學習焊接電路板。一塊電路板由若干個元件組成,我們不妨稱之為節點,並將其用數字1,2,3 1,2,3 1,2,3 進行標號。電路板的各個節點由若干不相交的導線相連線,且對於電路板的任何兩個節點,都存在且僅存在一條通路 通路指連線兩個元件的導線序列 在電路板上存在乙個特殊的元件...
洛谷P1131 ZJOI2007 時態同步
題目 貪心貪心思路是先找到每個節點的到最深處的路徑,並找到最大值。然後最後答案要加上該最大值和所有路徑權值的差。include define n 600101 define int long long using namespace std int n,root,cnt,ans,lin n siz ...
洛谷 P1131 ZJOI2007 時態同步
觀察題目 我們發現所給圖為一棵樹,則終止節點就為葉子節點,我們dfs一遍即可 先看 吧 include include include include include define inf 0x3f3f3f3f using namespace std const int maxn 5e5 4 int...