割點
給出乙個n個點,m條邊的無向圖,求圖的割點。
輸入格式:
第一行輸入n,m
下面m行每行輸入x,y表示x到y有一條邊
輸出格式:
第一行輸出割點個數
第二行按照節點編號從小到大輸出節點,用空格隔開
輸入樣例#1:
6 71 21 3
1 42 5
3 54 5
5 6
輸出樣例#1:
15
n,m均為100000
tarjan 圖不一定聯通!!!
洛谷的輸出樣例有誤····md半天才看出來
另外注意葉節點不是割點!!!!!
還有就是原圖不一定聯通····
幸好打了這個板···不然遇到割點題就慘了
#include#include#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int n=100001
;int fst[n],nxt[n*2],go[n*2],tot=0
;int n,m,low[n],dfn[n],cnt=0
,father[n];
bool
jud[n];
inline
void comb(int a,int
b)inline
void dfs(int
u)
else low[u]=min(low[u],dfn[v]);
} if(father[u]==u&&child>=2) jud[u]=true;}
intmain()
for(int i=1;i<=n;i++)
if(!dfn[i])
dfs(i);
int ans=0;
for(int i=1;i<=n;i++)
if(jud[i])
ans++;
cout
for(int i=1;i<=n;i++)
if(jud[i])
cout
<"";
return0;
}
割點 (模板) 洛谷3388
題目背景 割點題目描述 給出乙個n個點,m條邊的無向圖,求圖的割點。輸入輸出格式 輸入格式 第一行輸入n,m 下面m行每行輸入x,y表示x到y有一條邊 輸出格式 第一行輸出割點個數 第二行按照節點編號從小到大輸出節點,用空格隔開 輸入輸出樣例 輸入樣例 1 複製 6 7 1 2 1 3 1 4 2 ...
洛谷3388 割點(割頂)模板
題目背景 割點題目描述 給出乙個n個點,m條邊的無向圖,求圖的割點。輸入輸出格式 輸入格式 第一行輸入n,m 下面m行每行輸入x,y表示x到y有一條邊 輸出格式 第一行輸出割點個數 第二行按照節點編號從小到大輸出節點,用空格隔開 輸入輸出樣例 輸入樣例 1 6 7 1 2 1 3 1 4 2 5 3...
割點 洛谷P3388
割點 給出乙個n個點,m條邊的無向圖,求圖的割點。輸入格式 第一行輸入n,m 下面m行每行輸入x,y表示x到y有一條邊 輸出格式 第一行輸出割點個數 第二行按照節點編號從小到大輸出節點,用空格隔開 輸入樣例 1 671 2131 4253 5455 6 輸出樣例 1 1 5 對於全部資料,20000...