博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
迷宫城堡 HDU - 1269 (强连通分量)
阅读量:4310 次
发布时间:2019-06-06

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

迷宫城堡

 

题意:很明显是直接让判断有向图是不是强连通分量。

 

1 #include 
2 using namespace std; 3 const int maxv=10010; 4 const int maxe=100010; 5 int n,m; 6 struct Edge{ 7 int v,nex; 8 }e[maxe<<1]; 9 int head[maxv];10 int cnt=0;11 void init(){12 memset(head,-1,sizeof(head));13 cnt=0;14 }15 void add(int u,int v){16 e[cnt].v=v;17 e[cnt].nex=head[u];18 head[u]=cnt++;19 }20 int pre[maxv],low[maxv],sccno[maxv],dfsk,scc_cnt;21 stack
s;22 23 void dfs(int u){24 pre[u]=low[u]=++dfsk;25 s.push(u);26 for(int i=head[u];i!=-1;i=e[i].nex){27 int v=e[i].v;28 if(!pre[v]){29 dfs(v);30 low[u]=min(low[u],low[v]);31 }32 else if(!sccno[v]) //还在栈里!33 low[u]=min(low[u],low[v]);34 }35 if(pre[u]==low[u]){36 scc_cnt++;37 for(;;){38 int x=s.top();39 s.pop();40 sccno[x]=scc_cnt;41 if(x==u) break;42 }43 }44 }45 void find_scc(int n){46 memset(pre,0,sizeof(pre));47 memset(low,0,sizeof(low));48 memset(sccno,0,sizeof(sccno));49 dfsk=scc_cnt=0;50 for(int i=0;i
View Code

 

转载于:https://www.cnblogs.com/yijiull/p/7390562.html

你可能感兴趣的文章
.NET Micro Framework V4.2 QFE2新版本简介
查看>>
Vue.js学习笔记(2)vue-router
查看>>
python中函数和方法的区别
查看>>
(转载)java线程 - 线程唤醒后并被执行时,是在上次阻塞的代码行重新往下执行,而不是从头开始执行...
查看>>
【codeforces 483B】Friends and Presents
查看>>
【codeforces 767B】The Queue
查看>>
【codeforces 190C】STL
查看>>
041魔法方法:构造和析构
查看>>
7月/暑假集训总结1
查看>>
通悉IDC刘雨生带您查看BGP线路服务器的优势
查看>>
js在html中的三种写法
查看>>
数据切分——Atlas读写分离Mysql集群的搭建
查看>>
学习Learn Python The Hard Way 前言中的一段话,可与君共勉
查看>>
步步为营-79-缓存
查看>>
二分图匹配
查看>>
vim基本操作键盘图
查看>>
Bios-》主引导记录(MBR)-》启动文件-》操作系统
查看>>
JQ获取对象属性值
查看>>
vim插件之tabular,代码对齐强迫症必备
查看>>
jQuery Mobile 脚本加载问题
查看>>