码迷,mamicode.com
首页 > 其他好文 > 详细

点分治板子

时间:2019-03-24 12:22:59      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:ram   element   style   oid   初始   使用   amp   struct   size   

使用前初始化 sum=mx[rt=0]=n,getrt(1,0),solve(rt);

int sum, n, rt;
int sz[N], mx[N], vis[N];
struct _ {int to,w;};
vector<_> g[N];

void getrt(int x, int fa) {
    mx[x]=0, sz[x]=1;
    for (_ e:g[x]) if (!vis[e.to]&&e.to!=fa) {
		int y = e.to;
        getrt(y,x),sz[x]+=sz[y];
        mx[x]=max(mx[x],sz[y]);
    }
    mx[x]=max(mx[x],sum-sz[x]);
    if (mx[rt]>mx[x]) rt=x;
}
void solve(int x) {
	vis[x] = 1;
	for (_ e:g[x]) if (!vis[e.to]) {
		int y = e.to;
	}
	for (_ e:g[x]) if (!vis[e.to]) {
		mx[rt=0]=n,sum=sz[e.to];
		getrt(e.to,0), solve(rt);
	}
}

 

点分治板子

标签:ram   element   style   oid   初始   使用   amp   struct   size   

原文地址:https://www.cnblogs.com/uid001/p/10587607.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!