zju zoj 2588 求割边模板 边双连通
来源:互联网 发布:vscode git 记住密码 编辑:程序博客网 时间:2024/06/04 00:25
终极模板
View Code
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int N = 10010;
const int M = 100010;
int min(int a,int b){
return a>b?b:a;
}
struct EDGE{
int to,next,id;
}edge[2*M];
int n,m,tot,tdfn,nbridge;
int head[N],vis[N],low[N],dfn[N],bridge[M];
void add(int a,int b,int edgeid){
//这种方法判重边很慢
/* for(j=head[a];j!=-1;j=edge[j].next){
if(b==edge[j].to)
break;
}
if(j!=-1)
{
edge[j].tag=1;
edge[j^1].tag=1;
return ;
}*/
edge[tot].to=b;
edge[tot].id=edgeid;
edge[tot].next=head[a];
head[a]=tot++;
edge[tot].to=a;
edge[tot].id=edgeid;
edge[tot].next=head[b];
head[b]=tot++;
}
void dfs(int u,int fa){
int i,v;low[u]=dfn[u]=++tdfn;vis[u]=1;
for(i=head[u];i!=-1;i=edge[i].next){
v=edge[i].to;
if(vis[v]==1&&edge[i].id!=fa) low[u]=min(low[u],dfn[v]);
else if(!vis[v])
{
dfs(v,edge[i].id);
low[u]=min(low[u],low[v]);
if(low[v]>dfn[u]){
bridge[edge[i].id]=++nbridge;
}
}
}
vis[u]=2;
}
void init(){
int i;
tdfn=1;tot=0;nbridge=0;
for(i=0;i<=n;i++) head[i]=-1;
for(i=1;i<=m;i++) bridge[i]=0;
for(i=1;i<=n;i++) vis[i]=0;
}
int main()
{
int i,k,t;
int u,v;
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&m);
init();
for(k=1;k<=m;k++)
{
scanf("%d%d",&u,&v);
add(u,v,k);
}
dfs(1,0);
printf("%d\n",nbridge);
for(i=1,k=nbridge;i<=m;i++)
{
if(bridge[i])
{
printf("%d",i);
if(--k) printf(" ");
}
}
if(nbridge) printf("\n");
if(t) printf("\n");
}
return 0;
}
- zju zoj 2588 求割边模板 边双连通
- 边双连通模板
- 我的 边双连通 模板
- ZOJ 2588 双连通分量
- 【双连通】双连通模板 Tarjan
- 边双连通分量模板
- 无向图的割点,割边,点双连通,边双连通模板
- ZJU 2588 割边
- zju/zoj 1140 Courses
- zju 1002 zoj 1002
- zju 1003 zoj 1003
- zju 1004 zoj 1004
- zju 1005 zoj 1005
- zju 1006 zoj 1006
- zoj 1440 zju
- ZOJ 2588 Burning Bridges 求无向图桥 边双连通裸题
- 边双连通模版
- 边双连通 练习
- poj 1144 求割点 太奇怪了。。。。
- poj 1523 SPF 输出割点及割点分割的点集数目
- hdu 3269 模拟题
- hdu 3791(动态内存的释放问题)未解决
- zstu 2666 求三角形各种心到顶点的距离和
- zju zoj 2588 求割边模板 边双连通
- 单调队列入门 foj 1894 http://acm.fzu.edu.cn/problem.php?pid=1894
- 第一次SRM,纪念
- poj 1733 并查集
- poj 1503 第一个java
- hdu 3685 计算几何(好)
- poj 1265 pick定理的应用,水
- uvc摄像头代码解析6
- poj 2954 pick定理