1. 程式人生 > >點分治學習筆記

點分治學習筆記

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。