tarjan模板
来源:互联网 发布:韩国娱乐圈爆料知乎 编辑:程序博客网 时间:2024/04/28 01:13
今天下午就只看了一下tarjan算法。。。。妈蛋。。。太颓废了。。。这样不好不好~~
#include<iostream>#include<cstdio>#include<cstring>#include<string>using namespace std;int root[10000],ans,cnt,scc,top;int dfn[10000],low[10000];int s[100000],belong[10000];bool vis[10000];struct node{ int e,next;}a[10000];void add(int s,int e){ a[++ans].e=e; a[ans].next=root[s]; root[s]=ans;}void tarjan(int u){ dfn[u]=low[u]=++cnt; vis[u]=1; s[top++]=u; int v; for(int i=root[u];i!=-1;i=a[i].next) { v=a[i].e; if(dfn[v]==0) { tarjan(v); low[u]=low[u]>low[v]?low[v]:low[u]; } else if(vis[v] && low[u]>dfn[v]) low[u]=dfn[v]; } if(dfn[u]==low[u]) { ++scc; do { v=s[--top]; vis[v]=0; belong[v]=scc; }while(u!=v); }}int main(){ int k=8; ans=cnt=scc=top=0; // top=0,cnt=0; ans=-1; memset(root,-1,sizeof(root)); memset(dfn,0,sizeof(dfn)); memset(low,0,sizeof(low)); memset(belong,-1,sizeof(belong)); while(k--) { int s,e; scanf("%d%d",&s,&e); add(s,e); } tarjan(1); for(int i=1;i<=6;i++) { printf("%d %d\n",i,belong[i]); } system("pause"); return 0;}
- Tarjan模板
- tarjan模板
- tarjan模板
- 【tarjan模板】
- 【模板】tarjan
- Tarjan模板
- 【模板】Tarjan
- tarjan模板
- 【模板】tarjan
- tarjan模板
- Tarjan模板
- 【模板】Tarjan
- 强连通模板(Tarjan)
- tarjan算法模板
- HDU1289 Tarjan-模板题
- hdu1269 tarjan模板题
- 强连通tarjan模板
- 求割边模板(tarjan)
- 我晕
- 重载CDialog::PreCreateWindow是无效的
- uva 10862 - Connect the Cable Wires(规律)
- hdu1540Tunnel Warfare (线段树,单点更新)
- 【Maven实用技巧】01. 命令行新建一个Android项目,并使用Maven管理
- tarjan模板
- 相对于外国人写的《大话设计模式》
- poj3009_Curling 2.0
- hdu1950
- Java中的串行化
- android屏幕属性
- 黑马程序员--java技术--交通灯管理系统
- C++ 虚函数表解析
- 数据结构之希尔排序