割点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include<cstdio>
#include<iostream>
using namespace std;
int m,n;
int a[1999][1999];
int t;
int root;
int dfn[999];
int low[999];
int flag[9999];
int dfs(int x,int f)
{
int c=0;
dfn[x]=++t;
low[x]=t;
for(int i=1;i<=n;i++)
{
if(a[x][i]==1)
{
if(!dfn[i]){
c++;
dfs(i,x);
low[x]=min(low[i],low[x]);
if(low[i]>=dfn[x]&&x!=root)
flag[x]=1;
if(x==root&&c==2) flag[x]=1;
}
else if(f!=i) low[x]=min(low[x],dfn[i]);
}
}

}
int main()
{

scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
int x,y;
scanf("%d%d",&x,&y);
a[x][y]=1;
a[y][x]=1;
}
root=1;
dfs(root,1);
for(int i=1;i<=n;i++)
if(flag[i]) printf("%d",i);
}
最近的文章

黑匣子

维护一个大根堆,维护一个小根堆,大根堆有k个数,堆首就是第k大的,不会写堆,这里用优先队列来实现12345678910111213141516171819202122232425262728293031323334353637383940414243#include&lt;cstdio&gt;#in …

于  堆 优先队列 继续阅读
更早的文章

关系运算图

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798 …

于  数论 差分约束 最短路 继续阅读