强连通分量板子
来源:互联网 发布:linux设置防火墙端口 编辑:程序博客网 时间:2024/06/05 03:05
【这道题没有过poj2186,不过二分差错发现不是板子的问题】
还好复习了以下强连通分量!!不然到考场上了还是有可能写错!!
注意
1.因为强连通分量是针对有向图,所以没有什么if(v==fa) continue;的说法
2.else后面一定还要判断if(instk[v]) 非常重要!!这点和双连通分量不同!!
#include<cstdio>#include<cstring>#include<algorithm> using namespace std;const int M=50000+5,N=10000+5;int n,m;int to[M],nxt[M],head[N],etot;int low[N],dfn[N],idc;int stk[N],top,num,beg[N],cnt[N],out[N];bool instk[N];void adde(int u,int v){ to[++etot]=v; nxt[etot]=head[u]; head[u]=etot;}void tarjan(int u){ stk[++top]=u; low[u]=dfn[u]=++idc; instk[u]=1; for(int i=head[u];i;i=nxt[i]){ int v=to[i]; if(!dfn[v]){ tarjan(v); low[u]=min(low[v],low[u]); } else if(instk[v]) low[u]=min(low[u],dfn[v]); } if(dfn[u]==low[u]){ ++num; while(1){ int x=stk[top--]; beg[x]=num; cnt[num]++; instk[x]=0; if(x==u) break; } }}
阅读全文
0 0
- 强连通分量板子
- Tarjan求强连通分量板子
- 强连通分量板子 hdu 3072
- 收缩强连通分量
- 强连通分量
- POJ2181强连通分量
- 强连通分量模板
- POJ_2762_强连通分量
- 强连通分量
- 强连通分量
- 强连通分量
- 强连通分量
- 【强连通分量】传话
- 强连通分量 关节点
- poj2186强连通分量
- 强连通分量
- 强连通分量
- 强连通分量模板
- bomb炸弹实验
- 习题3 3.2
- ImageLoader 第二步在ListviewBaseadapter适配器中需要做的
- Hexo + Github搭建博客
- 跨平台shader编译的过去、现在和未来
- 强连通分量板子
- 三级缓存加强版
- mac系统下安装Composer
- Mysql常用操作(二)
- 时间复杂度的总结
- LVM管理
- 【《计算机网络(第七版)》学习笔记】二、 物理层
- 使用GHOST对Windows操作系统进行备份和还原
- Ruby快速入门(三):控制语句