poj 1144 求割點 太奇怪了。。。。

2022-05-24 11:03:10 字數 1457 閱讀 2275

求割點數很簡單

難在一些細節

到現在還不清楚為什麼一開始就設定dfn為1為什麼會錯

錯誤的**

view code

#include

#include

int n,son,ans;

int map[1000][1000];

int dfn[1000],low[1000];

int vis[1000];

int tdfn;

int flag[1000];

int min(int a,int b)

}else low[u]=min(dfn[v],low[u]);}}

} void init()

int a[1000];

int main()

dfs(1);ans=0;

if(son>=2) ans++;

for(i=1;i<=n;i++) ans+=flag[i];

printf("

%d\n

",ans);

}return

0;}

真確的**

view code

#include

#include

int n,son,ans;

int map[110][110];

int dfn[110],low[110];

int vis[110];

int tdfn;

int flag[110];

int min(int a,int b)

}else low[u]=min(dfn[v],low[u]);}}

} void init()

int a[110];

int main()

dfs(1);

if(son>=2) ans++;

for(i=2;i<=n;i++) ans+=flag[i];

printf("

%d\n

",ans);

}return

0;}

鄰接表寫法

#include#include#include#includeusing namespace std;

vectorlist[1000];

int low[1000],dep[1000];

int col[1000];

int n,son,ans;

int flag[1000];

int min(int a,int b)

}else if(col[v]==1&&v!=fa)

}}void init()

int main()

dfs(1,-1,1);

for(i=1;i<=n;i++) ans+=flag[i];

printf("%d\n",ans);

}return 0;

}

poj1144 求割點模板

以後這種模板還是看書比較好,網上的部落格都講得不是很好,推薦lyd寫的 演算法競賽高階指南 寫的,比較現代化 是的我就是在嫌棄紫書白書 然後講解的也通俗易懂。在各類tarjan演算法中,dfn i 表示到達i的序號,low i 表示i所能間接到達的點中dfn最小的值。那麼如果乙個點u是割點,如果他是...

poj1144 求割點數)

別人寫的對割點的詳細介紹 無向圖求點割集演算法 出處 黑書上給出了關於求點割集的演算法,但是比較模糊,我查閱了網路上的相關資料,理解了求點割集的過程,寫出如下求點割集的 並寫了一些簡單的證明.割點集的定義 如果在連通圖g中去掉某一點後圖不連通,那麼這個點即為g的割點,所有割點的集合即為點割集。求點割...

poj1144 求割點的個數(注意輸入的格式)

描述 線公司 tlc 正在建立乙個新的 電纜網路。它們連線了幾個從1到n的整數編號的位置。沒有兩個地方有相同的號碼。線路是雙向的,並且總是將兩個地方連線在一起,並且在每個地方線路終止於 交換機。每個地方都有乙個 交換機。它來自每個地方 可以通過其他地方的線路到達,但它不需要是直接連線,它可以通過幾個...