poj1144(求图中割点的个数)
来源:互联网 发布:矩阵迹的性质及证明 编辑:程序博客网 时间:2024/06/06 00:52
求图中割点的个数
#include<cstdio>#include<algorithm>#include<cstring>#include<vector>using namespace std;const int N=109;int low[N],dfn[N],id,ans,n;bool vis[N];vector<int> g[N];void dfs(int u){low[u]=dfn[u]=++id;int ch=0;//孩子数目for (int i=0;i<g[u].size();i++){int v=g[u][i];if (!dfn[v])//确保子树不相连{dfs(v);ch++;if (low[v]>=dfn[u]&&u!=1) vis[u]=true;//标记是割点low[u]=min(low[v],low[u]); }else low[u]=min(low[u],dfn[v]);}if (u==1&&ch>=2) vis[1]=true;//如果是根节点,必须有两个以上不相连的子树才行}int main(){while (scanf("%d",&n)!=-1){if (n==0)break;memset(low,0,sizeof(low));memset(dfn,0,sizeof(dfn));id=0;for (int i=0;i<=n;i++) g[i].clear();int a,b;while (scanf("%d",&a)&&a)while (getchar()!='\n') {scanf("%d",&b);g[a].push_back(b);g[b].push_back(a);}memset(vis,false,sizeof(vis));ans=0;dfs(1);for (int i=1;i<=n;i++) ans+=vis[i];printf("%d\n",ans);}}
0 0
- poj1144(求图中割点的个数)
- poj1144 求割点的个数
- poj1144(求割点---kuangbin的模板)
- poj1144-Network(求割点)
- poj1144(求割点)
- POJ1144
- poj1144
- POJ1144
- poj1144
- poj1144(求割顶模板题)
- poj1144( 求割点数)
- POJ1144--Network(Tarjan求割点)
- [POJ1144]Network(tarjan求割点)
- poj1144 Network(割顶)
- POJ1144-求图的割点(裸)
- poj1144 求图的割点
- poj1144 求图的割点--模板
- POJ1144-Network(割顶模板题)
- typedef和#define的用法与区别
- 酒店管理系统_04-Servlet版本-mysql数据库-方法封装修改数据表结构
- Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
- javascript-类定义-随
- Python 数据分析包:pandas 基础
- poj1144(求图中割点的个数)
- Ruby学习笔记
- 酒店管理系统_05-Servlet版本-mysql数据库-页面添加数据表
- MyBatis集合Spring(三)之mapper
- js获取子节点childNodes和children的区别
- 一个简单java程序的运行全过程
- 贪心算法——寻找剩余最大数
- 酒店管理系统_06_-Servlet版本-添加用户数据
- 基于BASE64原理编码解码实现-----C语言