poj2553强连通+缩点 如果让我说:我只能说,实力决定一切
来源:互联网 发布:javascript 设置style 编辑:程序博客网 时间:2024/04/30 11:03
思路:tarjan()算法,记录每个点的出度值(缩点之后),把所以出度为0的点找出来,然后进行从小到大排序
#include<iostream>#include<algorithm>#include<cstdio>#include<string.h>#include<vector>#include<stack>#define maxn 5111using namespace std;int V,E,sum,tem;int dfn[maxn],low[maxn],vis[maxn],outd[maxn],belong[maxn];int ans[maxn];vector<int>gra[maxn];stack<int>S;int MIN(int a,int b){ return a>b?b:a;}void tarjan(int pox){ vis[pox]=2; dfn[pox]=low[pox]=++sum; S.push(pox); for(int i=0; i<gra[pox].size(); i++) { int t=gra[pox][i]; if(!dfn[t]) { tarjan(t); low[pox]=MIN(low[pox],low[t]); } else if(vis[t]==2) { low[pox]=MIN(low[pox],dfn[t]); } } if(dfn[pox]==low[pox]) { ++tem; while(!S.empty()) { int gh=S.top(); S.pop(); outd[gh]=0; belong[gh]=tem; vis[gh]=1; if(gh==pox) break; } }}int main(){ int a,b; while(scanf("%d",&V),V) { tem=sum=0; memset(ans,0,sizeof(ans)); memset(dfn,0,sizeof(dfn)); memset(low,0,sizeof(low)); memset(vis,0,sizeof(vis)); memset(belong,0,sizeof(belong)); for(int i=0; i<maxn; i++) gra[i].clear(); while(!S.empty()) S.pop(); scanf("%d",&E); for(int i=0; i<E; i++) { scanf("%d%d",&a,&b); gra[a].push_back(b); } for(int i=1; i<=V; i++) if(!dfn[i]) tarjan(i); for(int i=1; i<=V; i++) for(int j=0; j<gra[i].size(); j++) { if(belong[i]!=belong[gra[i][j]]) { outd[belong[i]]++; } } int as=0; for(int i=1; i<=V; i++) if(!outd[belong[i]]) ans[as++]=i; if(as==0) { printf("\n"); continue; } sort(ans,ans+as); for(int i=0; i<as; i++) if(i==0) printf("%d",ans[i]); else printf(" %d",ans[i]); printf("\n"); } return 0;}
- poj2553强连通+缩点 如果让我说:我只能说,实力决定一切
- hdu2767强连通+缩点 如果让我说:我只能说,实力决定一切
- poj2186 强连通+缩点 如果让我说:我只能说,实力决定一切
- hdu1269强连通水题 如果让我说:我只能说,实力决定一切
- hdu 2642 二维数组+判重 如果让我说:我只能说,实力决定一切
- hdu1301 MST+优先队列 如果让我说:我只能说,实力决定一切。
- hdu2544 spfa 第一弹 如果让我说:我只能说,实力决定一切
- hdu 1233 kruskal+优先队列 如果让我说:我只能说,实力决定一切。
- hdu1535 spfa() 如果让我说:我只能说,实力决定一切
- hdu2112 spfa() 如果让我说:我只能说,实力决定一切
- hdu 3191 次短路+优先队列 如果让我说:我只能说,实力决定一切
- poj3463 hdu1688 次短路+优先队列 如果让我说:我只能说,实力决定一切
- hdu3339 spfa()+dp 如果让我说:我只能说,实力决定一切
- hdu 3336 KMP走起 如果让我说:我只能说,实力决定一切
- hdu3746 KMP之next[]威武 如果让我说:我只能说,实力决定一切。
- poj 2752 KMP+DFS() 如果让我说:我只能说,实力决定一切
- poj3974 hdu3068最长回文子串 如果让我说:我只能说,实力决定一切
- poj3321 树状数组+DFS() 如果让我说:我只能说,实力决定一切
- 关于jdk-6u18-windows-i586中环境变量的配置
- adt-bundle-windows-x86套件环境变量的设置
- Discuz7.0升级到X2.5
- PHP笔记之一-hello world、PHP常量及变量
- PHPCMS V9二次开发自定义分页函数的方法
- poj2553强连通+缩点 如果让我说:我只能说,实力决定一切
- PHP笔记之二-strlen、include及乱码的解决
- LGPL与闭源程序
- php笔记之三:字符串运算
- php笔记之四:循环
- 在大自然面前我们显的多么的脆弱
- 谈谈java中的那些概念
- photoshop
- lost cows