点分治学习笔记

Q&A

Q:博主是哪里来的辣鸡,怎么才学点分治?
A:太弱了一直没完全搞懂,确实是弱鸡。

点分治

这个知识点很简单啊,关键怎么运用。

摆概念谁不会摆?

放找重心的代码

void getrt(int u,int pa=0)
{
    siz[u]=1,w[u]=0;
    for(int i=head[u],v;i;i=nxt[i])
        if((v=to[i])!=pa&&!o[v])
            getrt(v,u),siz[u]+=siz[v],w[u]=max(siz[v],w[u]);
    w[u]=max(w[u],SZ-w[u]);
    if(w[u]<w[rt])rt=u;
}

记得容斥,还有容斥的方法。

没了。

动态点分治

去年暑假的时候就学了点分治,一直懒得去搞动态的,但都快退役了还不学就凉了。

概念也很简单,solve的时候建出点分树,然后操作。

怎么操作?咕咕咕具体看题吧QAQ。

猜你喜欢

转载自www.cnblogs.com/cx233666/p/10222775.html
今日推荐