[poj 1144]Network[Tarjan求割点]
题意:
求一个图的割点. 输入略特别: 先输入图中点的总数, 接下来每一行首先给出一个点u, 之后给出一系列与这个点相连的点(个数不定). 行数也不定, 用0作为终止.
这样的输入还是要保证以数字读入吧...gets没前途的
思路:
割点的模板啦~
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 105;
bool vis[MAXN],iscut[MAXN];
int dfn[MAXN],low[MAXN],head[MAXN],num,Index,n;
struct pool
{
int v,pre;
}p[MAXN*50]; void clear()
{
memset(vis,false,sizeof(vis));
memset(iscut,false,sizeof(iscut));
memset(dfn,0,sizeof(dfn));
memset(low,0,sizeof(low));
memset(head,0,sizeof(head));
memset(p,0,sizeof(p));
num = Index = 0;
} void add(int u, int v)
{
p[++num].v = v;
p[num].pre = head[u];
head[u] = num;
} void Tarjan(int u)
{
dfn[u] = low[u] = ++Index;
for(int tmp = head[u],k;k = p[tmp].v,tmp;tmp = p[tmp].pre)
{
if(!dfn[k])
{
Tarjan(k);
if(low[k] >= dfn[u])
iscut[u] = true;
low[u] = min(low[u], low[k]);
}
else
low[u] = min(low[u], dfn[k]);
}
} int cal()
{
int ret = 0;
for(int i=1;i<=n;i++)
{
if(iscut[i]) ret++;
}
return ret;
} int main()
{
while(scanf("%d",&n)==1 && n)
{
clear();///多少次...编写了你却忘记调用...
int u,v;
char c;
while(1)
{
scanf("%d%c",&u,&c);
if(!u) break;
while(1)
{
scanf("%d%c",&v,&c);
add(u,v);
add(v,u);
if(c=='\n') break;
}
}
int cnt = 0;
dfn[1] = Index = 1;
for(int tmp = head[1],k;k = p[tmp].v,tmp;tmp = p[tmp].pre)
{
if(!dfn[k])
{
cnt++;
Tarjan(k);
}
}
iscut[1] = cnt>1 ;
printf("%d\n",cal());
}
}
[poj 1144]Network[Tarjan求割点]的更多相关文章
- poj 1144 (Tarjan求割点数量)
题目链接:http://poj.org/problem?id=1144 描述 一个电话线公司(简称TLC)正在建立一个新的电话线缆网络.他们连接了若干个地点分别从1到N编号.没有两个地点有相同的号码. ...
- poj 1144 Network 无向图求割点
Network Description A Telephone Line Company (TLC) is establishing a new telephone cable network. Th ...
- POJ 1144 Network (求割点)
题意: 给定一幅无向图, 求出图的割点. 割点模板:http://www.cnblogs.com/Jadon97/p/8328750.html 分析: 输入有点麻烦, 用stringsteam 会比较 ...
- poj 1144 Network 【求一个网络的割点的个数 矩阵建图+模板应用】
题目地址:http://poj.org/problem?id=1144 题目:输入一个n,代表有n个节点(如果n==0就结束程序运行). 在当下n的这一组数据,可能会有若干行数据,每行先输入一个节点a ...
- POJ 1523 SPF tarjan求割点
SPF Time Limit: 1000MS Memory Limit ...
- POJ 3694 Network(Tarjan求割边+LCA)
Network Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 10969 Accepted: 4096 Descript ...
- POJ 1144 Network —— (找割点)
这是一题找无向图的割点的模板题,割点的概念什么的就不再赘述了.这里讲一下这个模板的一个注意点. dfs中有一个child,它不等于G[u].size()!理由如下: 如上图,1的size是2,但是它的 ...
- POJ 1144 Network(Tarjan求割点)
Network Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12707 Accepted: 5835 Descript ...
- poj 1523 SPF(tarjan求割点)
本文出自 http://blog.csdn.net/shuangde800 ------------------------------------------------------------ ...
随机推荐
- 更新-----Scripts:执行双网卡绑定
#!/bin/bash #------------------------------------------------------------------------------- # Name: ...
- Ubuntu 系统搭建php服务器 用ssh 远程操作
一:在桌面下载xshell客户端连接 ,vmavar 上的 Ubuntu系统,遇到的问题跟大家分享一下,希望大家少走弯路 Ubuntu系统默认没有ssh server 要安装 apt-get inst ...
- PCL库配置出现的问题(WIN10+VS2013)
边看电影边配终于配好了,中间出现了一些问题,在网上很难搜到,可能每个人都碰到的不同.摸索了一会终于都解决了,记录在这里,免得又碰到. PCL是什么东西就不在此介绍了. 主要是参考这篇博客做得,不过我后 ...
- unity tips
1.在unity 的mecanim中,如果一个动画指向两个或两个以上的动画,那么在inspector中,transitions中可以看到所有的过渡路径,这些路径是有先后顺序的.
- XMLHttpRequest Level 2 使用指南
XMLHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信. 最早,微软在IE 5引进了这个接口.因为它太有用,其他浏览器也模仿部署了,ajax操作因此得以诞生. ...
- (Oracle EBS)和标准用户有关的处理的API [Z]
/* 和标准用户有关的处理的API. */ ---和用户处理有关的API FND_USER_PKG ---和用户密码处理有关的API fnd_web_sec ---和用户职责处理有关的API FND_ ...
- jdbc之二:DAO模式
详细代码请参见 https://code.csdn.net/jediael_lu/daopattern 1.创建Dao接口. package com.ljh.jasonnews.server.dao; ...
- ORACLE PL/SQL开发--bulk collect的用法 .
刚刚在inthirties老大的博客里看到这篇文章,写的不错,正好自己最近在学习PL/SQL,转过来学习学习. ============================================ ...
- Leetcode 100 Same Tree python
题目: Given two binary trees, write a function to check if they are equal or not. Two binary trees are ...
- Entity Framewor中的 Migration
http://www.entityframeworktutorial.net/code-first/code-based-migration-in-code-first.aspx = Code bas ...