国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

bzoj2435: [Noi2011]道路修建 樹上dp

2019-11-08 01:37:35
字體:
供稿:網(wǎng)友

點擊打開鏈接

RE了一輩子...

思路:樹上dp,直接dfs找到每個點v的子節(jié)點有多少, 那么對答案的貢獻是 w*abs((n-size[v])-size[v]);

RE代碼:

#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1100000;vector<pair<ll,ll> > E[maxn<<1];ll size[maxn];ll n,ans;bool vis[maxn];inline ll read(){    ll x=0,f=1;char ch=getchar();    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}    return x*f;}void dfs(ll u){	size[u] = 1;	for(int i=0; i<E[u].size(); i++){		int v = E[u][i].first, w = E[u][i].second;		if(!vis[v]){			vis[v] = 1;			dfs(v);			size[u] += size[v];			ans+=(ll)(w*(ll)abs((ll)(size[v]-(n-size[v]))));		}	}}int main(){	n = read();	for(int i=1; i<n; i++){		ll u,v,w; u=read(),v=read(),w=read();		E[u].push_back(make_pair(v,w));		E[v].push_back(make_pair(u,w));	}	vis[n] = 1;	dfs(n);	cout << ans << endl;}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘肃省| 萝北县| 环江| 鹤峰县| 城市| 修水县| 江阴市| 南阳市| 米泉市| 精河县| 丘北县| 贵溪市| 三原县| 微博| 项城市| 东乌| 蒙山县| 罗山县| 五莲县| 沙河市| 江北区| 怀柔区| 山东| 扎囊县| 灌阳县| 民县| 辛集市| 大同县| 喀喇| 新密市| 太保市| 新龙县| 神农架林区| 瓦房店市| 卢湾区| 会同县| 博罗县| 广州市| 安泽县| 微博| 民县|