Uva11324
来源:互联网 发布:粗集料坚固性试验数据 编辑:程序博客网 时间:2024/06/07 17:48
# include<cstdio># include<stack># include<vector># include<cstring>using namespace std;const int maxn=2000+5;vector<int>G[maxn];vector<int>Scc[maxn];int pre[maxn],low[maxn],vis[maxn],value[maxn],sccno[maxn],dfs_clock,scc_cnt;stack<int>S;int max(int a,int b) {return a>b?a:b;}int DAG(int o){ if(vis[o]) return vis[o]; if(Scc[o].size()==0) return value[o]; for(int i=0;i<Scc[o].size();i++) { int to=Scc[o][i]; vis[o]=max(DAG(to)+value[o],vis[o]); } return vis[o];}int dfs(int u){ pre[u]=low[u]=++dfs_clock; S.push(u); for(int i=0;i<G[u].size();i++) { int v=G[u][i]; if(!pre[v]) { dfs(v); low[u]=min(low[u],low[v]); }else if(!sccno[v])low[u]=min(low[u],pre[v]); } if(low[u]==pre[u]) { scc_cnt++; for(;;) { int x=S.top();S.pop(); sccno[x]=scc_cnt; if(x==u) break; } }}void find_scc(int n){ dfs_clock=scc_cnt=0; memset(sccno,0,sizeof(sccno)); memset(pre,0,sizeof(pre)); for(int i=0;i<n;i++) if(!pre[i]) dfs(i);}int in[maxn],out[maxn];int main(){ int T,n,m; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); for(int i=0;i<n;i++) G[i].clear();//清空 for(int i=0;i<m;i++) { int u,v; scanf("%d%d",&u,&v);u--;v--; G[u].push_back(v); } find_scc(n);//求出scc memset(value,0,sizeof(value)); memset(vis,0,sizeof(vis)); for(int i=0;i<scc_cnt;i++) Scc[i].clear(); for(int i=0;i<n;i++) value[sccno[i]-1]++;// for(int u=0;u<n;u++) for(int i=0;i<G[u].size();i++) { int v=G[u][i]; if(sccno[u]!=sccno[v]) Scc[sccno[u]-1].push_back(sccno[v]-1);// } for(int i=0;i<scc_cnt;i++) if(!vis[i]) vis[i]=DAG(i); int ans=0; for(int i=0;i<scc_cnt;i++) if(ans<vis[i]) ans=vis[i]; printf("%d\n",ans); } return 0;}
0 0
- Uva11324
- uva11324
- UVa11324
- UVA11324 The Largest Clique
- 【UVa11324】最大团
- Uva11324——最大团
- 强连通分量+dp+uva11324
- 例题5.8 最大团 UVa11324
- uva11324 有向无环图求直径
- Uva11324 The Largest Clique tarjan+dp
- uva11324 The Largest Clique --- 强连通+dp
- UVa11324 - The Largest Clique(DAG+DP+SCC)
- UVA11324-- The Largest Clique(SCC+DP)
- UVA11324 The Largest Clique (强联通 + DP)
- UVA11324 - The Largest Clique(强连通最大团)
- 【UVa11324】最大团The Largest Clique【强联通分量】【DAG】
- UVA11324.The Largest Clique最大团——scc+dp
- UVa11324 The Largest Clique(强连通分量+DP)
- Cannot create JDBC driver of class '' for connect URL 'null'
- POJ 3768 Repeater
- php位运算符
- 一切成功源于积累——20140405 为什么就是不能再等等 每次都会被杀200点以上
- C# 委托与事件
- Uva11324
- tar 解压缩命令
- 关于VS2010+cuda4.2+opencv2.4.3的配置
- POJ 3660 Cow Contest 传递闭包确定名次
- trie基本用法
- 看你的飞洒洛克菲勒看能否
- iReport专题学习之报表元素03
- 使用ENVI打开raw格式影像
- 玩玩儿Flyway:数据库迁移