link
先點分治,儲存下以當前重心為一端且不經過其它中重心的路徑,並按\(\overline w-k\)排序。
然後二分答案,用雙指標掃每個重心的路徑,並維護下\(\overline w-k\)最小的路徑。
注意不能選來自同一子樹的兩條路徑,因此我們再維護乙個與\(\overline w-k\)最小的路徑來自不同子樹的\(\overline w-k\)最小的路徑即可。
#include#includetypedef long long i64;
const int n=50007,m=1000007;
int n,tot=1,all,root,cnt,num,head[n],ver[n<<1],next[n<<1],vis[n<<1],size[n],mx[n],st[n],ed[n];
i64 k,edge[n<<1],val[m];
struct nodet[2][m];
int operator<(node a,node b)
else if(!id1||mx1>x) id2=id1,mx2=mx1,id1=id,mx1=x;
else if(!id2||mx2>x) id2=id,mx2=x;
} if(id1&&id1^t[i][q].r&&val[q]+mx1<0) return 1;
if(id2&&id2^t[i][q].r&&val[q]+mx2<0) return 1;
}} }
return 0;
}int main()
清華集訓2016 汽水
試題描述 牛牛來到了乙個盛產汽水的國度旅行。這個國度的地圖上有n個城市,這些城市之間用 n 1 條道路連線,任意兩個城市之間,都存在一條路徑連線。這些城市生產的汽水有許多不同的風味,在經過道路 i 時,牛牛會喝掉 wi 的汽水。牛牛非常喜歡喝汽水,但過量地用汽水是有害健康的,因此,他希望在他旅行的這...
UOJ275 清華集訓2016 組合數問題
組合數 cm n cnm 表示的是從 n n 個物品中選出 m role presentation style position relative m m個物品的方案數。舉個例子,從 1 2,3 1,2,3 三個物品中選擇兩個物品可以有 1 2 1,3 2 3 1,2 1,3 2,3 這三種選擇方法...
UOJ 275 清華集訓2016 組合數問題
試題描述 組合數 c n m 表示的是從 n 個物品中選出 m 個物品的方案數。舉個例子,從 1,2,3 三個物品中選擇兩個物品可以有 1,2 1,3 2,3 這三種選擇方法。根據組合數的定義,我們可以給出計算組合數 c n m 的一般公式 begin c n m frac notag end 其中...