POJ-1144-Network
来源:互联网 发布:蜂窝移动网络走流量吗 编辑:程序博客网 时间:2024/05/17 09:04
这个题是个模板题吧,就是求割点的个数,直接代码吧。
代码:
#include<cstdio>#include<cstring>#include<iostream>#define MAX 2001using namespace std;int n,e,t,root,pnt[MAX],head[MAX],nxt[MAX],vis[MAX],cut[MAX],dfn[MAX],low[MAX];void add(int u,int v){ pnt[e]=v,nxt[e]=head[u],head[u]=e++;}void dfs(int u,int fa){ int v,cnt=0,flag=1; vis[u]=1; dfn[u]=low[u]=++t; for(int i=head[u];i!=-1;i=nxt[i]) {v=pnt[i];if(v==fa&&flag){ flag=0; continue;}if(!vis[v]){ dfs(v,u); cnt++; low[u]=min(low[u],low[v]); if((u==root&&cnt>1)||(u!=root&&low[v]>=dfn[u]))cut[u]=1;}else if(vis[v]==1) low[u]=min(low[u],dfn[v]); } vis[u]=2;}int main(){ int n; while(scanf("%d",&n)&&n) {t=e=0;root=1;memset(head,-1,sizeof(head));memset(low,0,sizeof(low));memset(dfn,0,sizeof(dfn));memset(vis,0,sizeof(vis));memset(cut,0,sizeof(cut));int m;while(scanf("%d",&m)&&m){ while(getchar()!='\n') {int ita;scanf("%d",&ita);add(m,ita);add(ita,m); }}dfs(1,-1);int ans=0;for(int i=1;i<=n;i++) if(cut[i])ans++;printf("%d\n",ans); } return 0;}
- POJ 1144 Network
- POJ 1144 Network
- POJ-1144-Network
- POJ 1144 Network
- POJ 1144 Network
- poj 1144 Network 关节点
- Poj 1144 Network
- POJ-1144 Network 求割点
- POJ 1144 Network 求割点
- POJ 1144 Network
- poj 1144 Network
- poj 1144 Network
- POJ 1144 Network 图论
- poj 1144 Network
- POJ 1144 Network
- POJ 1144 Network
- POJ 1144 Network 笔记
- POJ 1144 Network 求割点
- ubuntu网络配置
- 6、使用SAX解析xml文档
- 7_2,24位真彩模式(2013-2-27)
- 值得做的北大ACM题
- 在VS2010中引用静态库(以Openssl为例)
- POJ-1144-Network
- vm虚拟机中鼠标点击不起作用
- 【struts2】赵雅智_Struts2中结果集类型
- JS语法
- 第一篇,动机
- 一道简单有趣的C语言面试题
- android XML文件注释
- 结石如何预防
- Unix下修改设置环境变量