題意:找乙個點x使得$\sum c_i\cdot dis(i,x)$最小(其中dis表示i->x的距離)
做法:先跑出乙個點的答案,然後在樹上跳動,x->son的時候son這棵子樹的答案都減去$\sum c_i*dis(x,son),i\in son$,其他節點都增加$\sum c_i*dis(x,son)$
#includeusing「bzoj1827」奶牛大集會namespace
std;
#define ll long longinline ll read()
inline
void chkmin( int &a,int b )
inline
void chkmax( int &a,int b )
#define _ read()
#define ln endl
const
int n=1e5+5
;int
cnt,head[n];
struct edge e[n<<1
];inline
void insert( int u,int v,int
w ) ;
head[u]=cnt;
}inline
void ins( int u,int v,int
w )
ll sum[n],ans,tot,res;
inta[n],n;
inline
void dfs_1( int x,int
fa )
}}inline
void dfs_2( int x,int
fa )
}}int
main()
dfs_1(
1,0); res=ans;
//cout/
cout
); cout
}
BZOJ1827 奶牛大集會(樹形遞推)
description bessie正在計畫一年一度的奶牛大集會,來自全國各地的奶牛將來參加這一次集會。當然,她會選擇最方便的地點來舉辦這次集會。每個奶牛居住在 n 1 n 100,000 個農場中的乙個,這些農場由n 1條道路連線,並且從任意乙個農場都能夠到達另外乙個農場。道路i連線農場a i和b...
0717 樹形dp 容斥原理 BZOJ1827
由於是許可權題,我就不好把題目發上來了 萬一bzoj打我怎麼辦 題目大意如下即可 題解 30 資料,暴力計算 列舉每個點作為集合點,然後計算。兩點距離可以用 lca 來計算 對於100 資料 考慮 樹形dp 容斥原理 換根 定義f i 表示i為關鍵點答案 dis i 表示以i為根子樹和,第一遍樹形d...
BZOJ1641Cow Hurdles 奶牛跨欄
1641 usaco2007 nov cow hurdles 奶牛跨欄 time limit 5 sec memory limit 64 mb submit 511 solved 336 description farmer john 想讓她的奶牛準備郡級跳躍比賽,貝茜和她的夥伴們正在練習跨欄。她們...