觀察題目
我們發現所給圖為一棵樹,則終止節點就為葉子節點,我們dfs一遍即可
先看**吧
#include#include#include#include#include#define inf 0x3f3f3f3f
using namespace std;
const int maxn=5e5+4;
int maxx=-1;
inline int read()
while(ch>='0'&&ch<='9')
return f*ret;
}int n;
int s;
long long ans;
int head[maxn];
struct edgee[maxn];
int cnt;
int m[maxn];
void add(int u,int to,int w)
void dfs(int u,int fa)
for(int i=head[u];i;i=e[i].nex)
} for(int i=head[u];i;i=e[i].nex)
} for(int i=head[fa];i;i=e[i].nex)
return;
}int main(){
// freopen("a.in","r",stdin);
n=read();
s=read();
int x,y,z;
for(int i=1;i看著好像挺長但其實挺好理解
解釋一下吧
本質上更新過的父節點變成了從父節點到子樹中葉子節點的最大權值和
即從父節點到葉子節點所需費用的最大值
我們先dfs到最低層
然後從後向前更新
還是很好理解的,畫個簡單圖推一下即可
洛谷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 時態同步
小q在電子工藝實習課上學習焊接電路板。一塊電路板由若干個元件組成,我們不妨稱之為節點,並將其用數字1,2,3 進行標號。電路板的各個節點由若干不相交的導線相連線,且對於電路板的任何兩個節點,都存在且僅存在一條通路 通路指連線兩個元件的導線序列 在電路板上存在乙個特殊的元件稱為 激發器 當激發器工作後...