POJ-1523 SPF 割点
来源:互联网 发布:激光焊接机软件 编辑:程序博客网 时间:2024/05/01 05:22
题意:给你幅图,求割点 对每个点去掉后联通分量数;
裸Tarjan
#include<stdio.h>#include<string.h>#include<vector>#include<queue>using namespace std;const int maxn = 1025;const int inf = 1<<29;int n,son;vector<int>map[maxn];int dfs_clock,low[maxn],dfn[maxn];int iscut[maxn];void dfs( int u,int fa ){low[u] = dfn[u] = ++dfs_clock;for( int i = 0; i < map[u].size(); i ++ ){int v = map[u][i];if( !dfn[ v ] ){dfs(v,u);low[u] = low[u] <= low[v] ? low[u]:low[v];if( low[v] >= dfn[u] ){if( fa != -1 )iscut[u] ++;elseson ++;}}else if( dfn[v] < dfn[u] && v != fa ) low[u] = low[u] <= dfn[v] ? low[u]:dfn[v]; }}void tarjan(){dfs_clock = 0,son = 0;memset( low,0,sizeof(low) ); memset( dfn,0,sizeof(dfn) ); memset( iscut,0,sizeof(iscut) );dfs(1,-1);if( son > 1 )iscut[1] = son - 1;}int main(){ //freopen("data.txt","r",stdin);int cas = 0,u,v;while( scanf("%d",&u) != EOF,u ){scanf("%d",&v);for( int i = 1; i <= 1000; i ++ ) map[i].clear(); map[u].push_back( v );map[v].push_back( u );n = u >= v?u:v;while( scanf("%d",&u) == 1 && u ){scanf("%d",&v);map[u].push_back( v );map[v].push_back( u );n = u >= v?u:v;}tarjan();int flag = 0;if( cas )puts("");printf("Network #%d\n",++cas);for( int i = 1; i <= n; i ++ ){if( iscut[i] ){flag = 1;printf(" SPF node %d leaves %d subnets\n",i,iscut[i]+1);}}if( !flag )printf(" No SPF nodes\n");} return 0;}
- [割点] poj 1523 SPF
- POJ-1523 SPF 割点
- 【POJ】1523 SPF 割点
- POJ - 1523 SPF(割点)
- POJ--1523 SPF(割点)
- POJ 1523 SPF【割点】
- POJ 1523 SPF 割点
- POJ 1523 SPF (割点)
- Poj 1523 SPF(割点 + tarjan算法)
- TOJ 2018 POJ 1523 SPF / 割点
- POJ 1523 SPF(割点)
- POJ-1523 SPF (割点[Tarjan])
- POJ 1523 SPF (割点)
- POJ 1523 SPF 割边与割点
- POJ 1523 SPF(割点所割连通分量数)
- POJ 1523 SPF(割点所割连通分量数)
- POJ 1523 SPF(割点所割连通分量数)
- POJ 1523 SPF (割顶 点双连通分量)
- UVA 11987 Almost Union-Find (并查集,可持久化)
- 【C语言】23-typedef
- Objective-C语法之字符串那些事
- SQL html 导出excel 数字如何保持两位小数
- 前缀变后缀
- POJ-1523 SPF 割点
- android 线程大全
- PHP安装fastDFS扩展
- oracle超时无响应
- XCode路径设置
- windows环境下Socket编程的几种模型
- UITextView 实现placeholder的方法
- Chapter 2 | Linked Lists--返回单链表倒数第n个元素及删除中间的某个节点
- hdu 4267 A Simple Problem with Integers(分类别维护多个树状数组)