bzoj1060 ZJOI2007 時態同步

2022-08-16 14:45:10 字數 1477 閱讀 3533

小q在電子工藝實習課上學習焊接電路板。一塊電路板由若干個元件組成,我們不妨稱之為節點,並將其用數

字1,2,3….進行標號。電路板的各個節點由若干不相交的導線相連線,且對於電路板的任何兩個節點,都存在且僅

存在一條通路(通路指連線兩個元件的導線序列)。在電路板上存在乙個特殊的元件稱為「激發器」。當激發器工

作後,產生乙個激勵電流,通過導線傳向每乙個它所連線的節點。而中間節點接收到激勵電流後,得到資訊,並將

該激勵電流傳向與它連線並且尚未接收到激勵電流的節點。最終,激烈電流將到達一些「終止節點」——接收激勵

電流之後不再**的節點。激勵電流在導線上的傳播是需要花費時間的,對於每條邊e,激勵電流通過它需要的時

間為te,而節點接收到激勵電流後的**可以認為是在瞬間完成的。現在這塊電路板要求每乙個「終止節點」同時

得到激勵電路——即保持時態同步。由於當前的構造並不符合時態同步的要求,故需要通過改變連線線的構造。目

前小q有乙個道具,使用一次該道具,可以使得激勵電流通過某條連線導線的時間增加乙個單位。請問小q最少使用

多少次道具才可使得所有的「終止節點」時態同步?

第一行包含乙個正整數n,表示電路板中節點的個數。第二行包含乙個整數s,為該電路板的激發器的編號。接

下來n-1行,每行三個整數a , b , t。表示該條導線連線節點a與節點b,且激勵電流通過這條導線需要t個單位時

間僅包含乙個整數v,為小q最少使用的道具次數31

1 2 1

1 3 3

2n ≤ 500000,te ≤ 1000000

我們注意到,對於每乙個節點來說,從根到這個節點距離不變,因此從它到它能到的任一節點距離相等。因此我們通過倒推可以寫出方程:f[fa]=max(f[fa],f[son]+e[i].cap)。最後的答案就是sigma(f[x]-f[son]-e[i].cap)。可以採用樹形dp來做。

1 #include2 #include3 #include4 #include5 #include6 #include7

#define ll long long

8using

namespace

std;

9struct

nodee[1000010

];13

int n,s,cnt=1;14

int head[500010

];15 ll ans=0

;16 ll dp[500010

];17

void add(int u,int

v,ll c)

21void dfs(int x,int

fr)28}29

for(i=head[x];i;i=e[i].nxt)33}

34}35int

main()

44 dfs(s,0

);45 printf("

%lld\n

",ans);

46return0;

47 }

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 進行標號。電路板的各個節點由若干不相交的導線相連線,且對於電路板的任何兩個節點,都存在且僅 存在一條通路 通路指連線兩個元件的導線序列 在電路板上存在乙個特殊的元件稱為 激發器 當激發器工...

BZOJ1060 ZJOI2007 時態同步

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