博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 2767(tarjan)
阅读量:5343 次
发布时间:2019-06-15

本文共 1724 字,大约阅读时间需要 5 分钟。

写了一晚上板子,无话可说

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define hh printf("--------------\n");const int maxn=20000+100;const int maxm=50000+100;int low[maxn],dfn[maxn];int ncnt,ccnt;int noc[maxn];int hade[maxm];bool vis[maxn],insk[maxn];stack
sk;struct note{ int to; int next;} aa[maxm];int n,m,k;void addage(int fr,int to){ aa[k].to=to; aa[k].next=hade[fr]; hade[fr]=k++;}void tarjan(int u){ ncnt++; low[u]=ncnt; dfn[u]=ncnt; sk.push(u); vis[u]=1; insk[u]=1; for(int i=hade[u]; i!=-1; i=aa[i].next) { int v=aa[i].to; if(!vis[v]) { tarjan(v); low[u]=min(low[u],low[v]); } else if(insk[v]) { low[u]=min(low[u],dfn[v]); } } if(low[u]==dfn[u]) { int v; do { v=sk.top(); sk.pop(); insk[v]=0; noc[v]=ccnt; } while(v!=u); ccnt++; }}vector
> linefrom;vector
> lineto;void yasuo(int nn,int nc){ linefrom.resize(nc); lineto.resize(nc); for(int u=1; u<=nn; u++) for(int i=hade[u]; i!=-1; i=aa[i].next) { int v=aa[i].to; int cu=noc[u]; int cv=noc[v]; if(cu!=cv) { linefrom[cv].insert(cu); lineto[cu].insert(cv); } }}void init(){ k=0; memset(hade,-1,sizeof(hade)); memset(vis,0,sizeof(vis)); memset(insk,0,sizeof(insk)); memset(aa,0,sizeof(aa)); memset(noc,0,sizeof(noc)); while(sk.size()) sk.pop(); linefrom.clear(); lineto.clear(); ncnt=0; ccnt=0;}int t;int main(){ scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); init(); int a,b; for(int i=1; i<=m; i++) { scanf("%d%d",&a,&b); addage(a,b); } for(int i=1; i<=n; i++) if(!vis[i]) tarjan(i); yasuo(n,ccnt); int z_in=0,z_out=0; for(int i=0; i

 

转载于:https://www.cnblogs.com/Wangwanxiang/p/7512127.html

你可能感兴趣的文章
内排序之快速排序
查看>>
Django 认证系统
查看>>
温故而知新 小测试
查看>>
windows和linux下安装 redis
查看>>
互联网趋势分析工具
查看>>
调用bash的时候出现curl command not found
查看>>
Android学习之旅(一)
查看>>
I2C软件调试思路并知识总结
查看>>
一个完整的Makefile文件举例
查看>>
怎样防止重复发送 Ajax 请求?
查看>>
UISearchController的使用。(iOS8+)
查看>>
elasticSearch基本使用
查看>>
1038 recover the smallest number
查看>>
JavaScript汇总
查看>>
支付宝app支付 验签突然不过
查看>>
网站及搜索优化框架梳理
查看>>
js中location 相关属性总结
查看>>
iOS Cordova 加载远程界面
查看>>
android 按比例获取SD卡缩略图
查看>>
C# 使用SqlBulkCopy类批量复制大数据
查看>>