博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
割点与桥
阅读量:6607 次
发布时间:2019-06-24

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

定义

割点:删掉该点后,原连通图分裂为多个子图;

桥:删掉该边后,原连通图分裂为多个子图;

求割点:

#include
#include
#include
#include
using namespace std;const int maxn=150000+10;int dfn[maxn],low[maxn];bool iscut[maxn];vector
pic[maxn];int dfs_clock=0;void tarjan(int x,int fa){ int child=0; dfn[x]=low[x]=++dfs_clock; for (int i=0;i
=dfn[x]) iscut[x]=true; } else low[x]=min(low[x],dfn[y]); } if (fa==-1&&child<=1) iscut[x]=false;}int main(){ int n,m; scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); pic[x].push_back(y); pic[y].push_back(x); } memset(dfn,0,sizeof(dfn)); memset(iscut,0,sizeof(iscut)); for (int i=1;i<=n;i++) if (!dfn[i]) tarjan(i,-1); int cnt=0; for (int i=1;i<=n;i++) if (iscut[i]) cnt++; printf("%d\n",cnt); return 0;}

  求桥:

#include
#include
#include
#include
using namespace std;const int maxn=100;vector
pic[maxn];int dfn[maxn],low[maxn];int dfs_clock=0;void tarjan(int x,int fa){ dfn[x]=low[x]=++dfs_clock; for (int i=0;i

 

转载于:https://www.cnblogs.com/PaperCloud/p/7113224.html

你可能感兴趣的文章
Oracle数据库安全加固记录
查看>>
安全运维之:Linux系统账户和登录安全
查看>>
【cocos2d-x从c++到js】17:使用FireFox进行JS远程调试
查看>>
Kafka Offset Storage
查看>>
深度学习笔记之CNN(卷积神经网络)基础
查看>>
JAVA设计模式之【原型模式】
查看>>
Hadoop 添加删除数据节点(datanode)
查看>>
33.8. slb configuration
查看>>
ext的window如何隐藏水平滚动条
查看>>
71.8. Run level shell script to start Oracle 10g services on RedHat Enterprise Linux (RHAS 4)
查看>>
SAP QM Transfer of Inspection Stock
查看>>
全新视觉| 数治省市:SAP大数据构想一切可能
查看>>
ORACLE expdp备份与ORA-31693、ORA-02354、ORA-02149
查看>>
SAP S/4 HANA新变化-信用管理
查看>>
doc-remote-debugging.html
查看>>
DBMS_STATS.GATHER_TABLE_STATS
查看>>
Java-单机版的书店管理系统(练习设计模块和思想_系列 五 )
查看>>
嵌入式 详解udev
查看>>
《C程序员:从校园到职场》出版预告(2):从“百花齐放”到“一枝独秀”
查看>>
Network Monitor 查询命令和MySQL命令
查看>>