一些模板

圖論
void dfs(int x)
{
    dfn[x]=++cnt;
    for(int i=head[x];i;i=Next[i])
    {
        int y=ver[i];
        if(y==pre[x])continue;
        if(dfn[y])
        {
            if(dfn[y]<dfn[x])continue;
            ans[++kk]=y;
            for(;y!=x;y=pre[y])ans[++kk]=pre[y];
        }
        else pre[y]=x,dfs(y);
    }
}
dfs找環
void chuan(){
    for(ll k=1;k<=n;k++)
        for(ll i=1;i<=n;i++)
            if(bit[i][k])
                bit[i]|=bit[k];
}
bitset優化傳遞閉包

 

.閉包

相關文章
相關標籤/搜索