P1131 ZJOI2007 時態同步

2022-04-29 21:51:12 字數 745 閱讀 3018

樹形dp

有一棵樹,有 n 個節點, n-1 條邊,每條邊都有乙個權值。

要求每個葉子結點到根節點的邊權相同,求最少的改動數量(不是次數)

看不懂的話,走傳送門

很顯然是 dp (我也不知道是怎麼想到的)

我們可以想一想,如果從根節點出發,向下維護會有諸多不便。

所以我們可以倒著思考,從每乙個葉子結點開始進行維護,這就很方便了。

現在我們來考慮如何維護:

然後就沒了。

#include#include#include#include#include#include#define maxn 500500

using namespace std;

int n,s,maxd[maxn],cnt=0,head[maxn];

long long ans=0;

struct nodeedge[maxn];

void addedge(int x,int y,int v)

void dfs(int x,int fa)

for(int i=head[x];i;i=edge[i].next)

for(int i=head[fa];i;i=edge[i].next)

return;

}int main(){

scanf("%d %d",&n,&s);

int a,b,c;

for(int i=1;i其實這道題接近模擬,但也有 dp 思想。

P1131 ZJOI2007 時態同步

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

P1131 ZJOI2007 時態同步

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

P1131 ZJOI2007 時態同步

include define maxn 1000005 using namespace std struct edge edge maxn int n,s,a,b,t,maxn maxn cnt,head maxn maxn儲存到子節點的最大邊權 long long ans 注意,答案要用long ...