其他分享
首页 > 其他分享> > 点分治

点分治

作者:互联网

点分治常用于树上路径统计等问题。

点分治

每次分治过程大致如下:

伪代码如下:

void solve(int x)
{
	 Find1(x,0),Find2(x,0); // 找到重心 rt 
	 // 处理和 rt 有关的答案
	 used[rt]=true;
	 for(/*与 rt 直接相连并且没有被删除的节点*/) solve(ver);
}

P3806 【模板】点分治

P4178 Tree

树上 \(0/1\) 背包:给定一棵树,每个点上有一个物品有一个价值 \(w_i\),\(m\) 次询问,每次询问 \(u\) 到 \(v\) 的路径上选择 \(k\) 个物品的最大价值。

P6326 Shopping

动态点分治

咕咕咕

标签:rt,连通,重心,处理,分治,solve
来源: https://www.cnblogs.com/EricQian/p/15613795.html