Tarjan算法板子
来源:互联网 发布:win10优化用什么软件好 编辑:程序博客网 时间:2024/06/06 04:45
#include<iostream>#include<algorithm>#include<vector>using namespace std;const int maxn=10010;int dfn[maxn];int low[maxn];int vis[maxn];int stack[maxn];int color[maxn];int cnt=0;int size=0;int tot=0;vector<int> edge[maxn];void tarjan(int st){ dfn[st]=low[st]=++tot; vis[st]=1; stack[++size]=st; for(int i=0;i<edge[st].size();i++){ int ed=edge[st][i]; if(!dfn[ed]){ tarjan(ed); low[st]=min(low[st],low[ed]); } else if(vis[ed]) low[st]=min(low[st],dfn[ed]); } if(dfn[st] == low[st]){ cnt++; do{ color[stack[size]]=cnt; vis[stack[size]]=1; }while(st!=stack[size--]); }}int main(){ int n,m; cin>>n>>m; for(int i=1;i<=m;i++){ int x,y; cin>>x>>y; edge[x].push_back(y); } for(int i=1;i<=n;i++){ if(!dfn[i]) tarjan(i); } for(int i=1;i<=n;i++){ cout<<color[i]<<endl; } return 0;}
阅读全文
0 0
- Tarjan算法板子
- Tarjan求割点傻逼板子
- Tarjan求割点板子
- hdu 2586 tarjan 板子
- luogu3388 tarjan求割点板子
- tarjan无向图求割点,cpp板子
- Tarjan求强连通分量板子
- tarjan板子(割点割边连通分量)
- tarjan算法
- Tarjan算法
- tarjan算法
- Tarjan算法
- Tarjan算法
- Tarjan算法
- Tarjan 算法
- Tarjan算法
- Tarjan算法
- tarjan算法
- xlistview 数据库
- 我所知道的几种display:table-cell的应用
- Java中的数组
- uva122 Trees on the level (数组,指针两种实现方式)
- 事件分发
- Tarjan算法板子
- HDU
- 矩阵范数小结
- hdu3374-最小表示法&&kmp求循环节-String Problem
- SpringMVC实现文件上传
- [latex]texshop
- SQL笔记
- python基础3
- 【linux性能监控】-LR自带监控