【Q】【poj 1144】【poj 1523】
割點問題
題目類型相同,于是放到一起寫。套了個版就可以了。
貼出版吧,方便查找。
void dfs(int k, int fa){
??? int j, i, son = 0;
??? vis[k] = 1;
??? PreOrder[k] = BackOrder[k] = dfn ++;
??? for(i = 0; i < adj[k].size(); i ++){
??????? j = adj[k][i];
??????? if(vis[j] == 1 && j != fa)
??????????? BackOrder[k] = min(BackOrder[k], PreOrder[j]);
??????? if(vis[j] == 0){
??????????? dfs(j, k);
??????????? son ++;
??????????? BackOrder[k] = min(BackOrder[k], BackOrder[j]);
??????????? if((fa==-1 && son > 1) || (fa != -1 && BackOrder[j] >= PreOrder[k]))
?????????? ??? cut[k][j]=cut[j][k]=true;
??????? }
??? }
??? vis[k] = 2;
}
調用時PreOrder[i]==0 dfs(i,-1);
轉載于:https://www.cnblogs.com/sawoman/archive/2011/09/17/2179346.html
總結
以上是生活随笔為你收集整理的【Q】【poj 1144】【poj 1523】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于mysql修改密码后的问题
- 下一篇: 屌丝程序员的那些事(一)-毕业那年