演算法複習 割點(洛谷3388)

2022-05-23 13:48:12 字數 1257 閱讀 8502

割點

給出乙個n個點,m條邊的無向圖,求圖的割點。

輸入格式:

第一行輸入n,m

下面m行每行輸入x,y表示x到y有一條邊

輸出格式:

第一行輸出割點個數

第二行按照節點編號從小到大輸出節點,用空格隔開

輸入樣例#1:

6 7

1 21 3

1 42 5

3 54 5

5 6

輸出樣例#1:

1 

5

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...