1060 ZJOI2007 時態同步

2021-07-29 23:20:43 字數 818 閱讀 2710

題目鏈結

題目大意:給定一顆有根樹,每次操作可以使某條邊權+1,求最少操作次數,使得根節點到每乙個葉節點距離相等

題解:由於只能使邊權增加,很容易看出最後所有點到根的距離都是max,max表示初始時距離根最遠的葉子的距離。如果只給連線葉子節點的邊增加邊權,答案就是sum(max-dis[i]),i為葉子節點。顯然,操作越靠上的邊越優。這樣可以一層層地把共同的操作合併

我的收穫:樹形dp勁啊

#include 

#include

#include

#include

using

namespace

std;

#define m 500010

#define inf 1e60

int n,rt,t;

int head[m],sz[m];

long

long ans,mx,dis[m],mi[m],f[m];

struct edgee[m*3];

void add(int u,int v,int w);head[u]=t++;}

void predfs(int x,int fa)

}void dfs(int x,int fa)

for(int i=head[x];i!=-1;i=e[i].nex)

if(e[i].to!=fa)

ans+=f[e[i].to]-f[x];

//減去合併的操作

}void work()

void init()

int main()



1060 ZJOI2007 時態同步

小q在電子工藝實習課上學習焊接電路板。一塊電路板由若干個元件組成,我們不妨稱之為節點,並將其用數 字1,2,3 進行標號。電路板的各個節點由若干不相交的導線相連線,且對於電路板的任何兩個節點,都存在且僅 存在一條通路 通路指連線兩個元件的導線序列 在電路板上存在乙個特殊的元件稱為 激發器 當激發器工...

BZOJ 1060 ZJOI2007 時態同步

time limit 10 sec memory limit 162 mb submit 3380 solved 1356 submit status discuss description 小q在電子工藝實習課上學習焊接電路板。一塊電路板由若干個元件組成,我們不妨稱之為節點,並將其用數 字1,2,...

BZOJ1060 ZJOI2007 時態同步

小q在電子工藝實習課上學習焊接電路板。一塊電路板由若干個元件組成,我們不妨稱之為節點,並將其用數 字1,2,3 進行標號。電路板的各個節點由若干不相交的導線相連線,且對於電路板的任何兩個節點,都存在且僅 存在一條通路 通路指連線兩個元件的導線序列 在電路板上存在乙個特殊的元件稱為 激發器 當激發器工...