题目链接:传送门

思路:

就是求割点的个数,直接Tarjan算法就行。

注意输入格式(判断比较水)。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<string>
#include<stack>
#include<algorithm>
using namespace std;
const int maxn = ;
int num[maxn],low[maxn],vis[maxn],gedian[maxn],tim,cnt,root;
vector <int> vc[maxn];
int MIN(int x,int y)
{
return x<y?x:y;
}
void Init()
{
memset(num,,sizeof(num));
memset(low,,sizeof(low));
memset(vis,,sizeof(vis));
memset(gedian,,sizeof(gedian));
for(int i=;i<maxn;i++) vc[i].clear();
tim=;cnt=;
}
void Tarjan(int u,int pre)
{
low[u]=num[u]=++tim;
vis[u]=;
int v,i,tt=;
for(i=;i<vc[u].size();i++){
v=vc[u][i];
if(!vis[v]){
tt++;
Tarjan(v,u);
low[u]=MIN(low[u],low[v]);
if((u==root&&tt>)||(u!=root&&num[u]<=low[v])) gedian[u]=;
}
else low[u]=MIN(low[u],num[v]);
}
}
int main(void)
{
int n,m,i,j,x,y;
char ch;
string str;
while(~scanf("%d",&n)&&n){
Init();
int c1=,c2;
while(scanf("%d",&x)&&x){
if(c1>=n) break;c1++;
c2=;
while(){
c2++;
scanf("%d",&y);
vc[x].push_back(y);
vc[y].push_back(x);
if(c2>=n) break;
ch=getchar();
if(ch=='\n') break;
}
} for(i=;i<=n;i++)
if(vis[i]==){
root=i;
Tarjan(i,-);
}
for(i=;i<=n;i++)
if(gedian[i]==) cnt++;
printf("%d\n",cnt);
}
return ;
}

LOJ-10100(割点个数)的更多相关文章

  1. POJ1144Network(求割点个数)

    题目链接 题意:一共n割点,然后若干行,每行第一个输入一个点,然后若干个点表示与他相连,0单独一行表示一个样例的结束.然后求图中的割点个数 割点:去掉该点之后得到的图不在连通,那么该店就是割点 一般割 ...

  2. UVA-315 无向图求割点个数

    题意抽象: 给定一个无向图,输出割点个数. 割点定义:删除该点后,原图变为多个连通块. 考虑一下怎么利用tarjan判定割点: 对于点u和他相连的当时还未搜到的点v,dfs后如果DFN[u]<= ...

  3. 蓝桥杯历届试题 危险系数(dfs或者并查集求无向图关于两点的割点个数)

    Description 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的多个站点间有通道连接,形成了庞大的网络.但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系. 我们来定义一个 ...

  4. loj 1063(求割点个数)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26780 思路:判断一个点是否是割点的两个条件:1.如果一个点v是根 ...

  5. POJ 1144 Network(tarjan 求割点个数)

    Network Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 17016   Accepted: 7635 Descript ...

  6. poj 1144(求割点个数)

    题目链接:http://poj.org/problem?id=1144 思路:判断一个点是否是割点的两个条件:1.如果一个点v是根结点并且它的子女个数大于等于2,则v是割点.2.如果点v不是根结点,并 ...

  7. UVA 315 315 - Network(求割点个数)

     Network  A Telephone Line Company (TLC) is establishing a new telephone cable network. They are con ...

  8. 【BZOJ】2730: [HNOI2012]矿场搭建【Tarjan找割点】【分联通块割点个数】

    2730: [HNOI2012]矿场搭建 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3230  Solved: 1540[Submit][Stat ...

  9. HDU2485Destroying the bus stations 拆点网络流求割点个数

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2485 题目要求:删除最少的点,使得源点到汇点的距离大于k 思路:拆点.建图求费用小于等于k的最大流 # ...

随机推荐

  1. NodeJS学习之win10安装与sublime配置

    Window 上安装Node.js Node.js安装包及源码下载地址为:https://nodejs.org/en/download/ 下载安装就行了,安装node会同时安装npm. sublime ...

  2. MySQL——navicat 连接 mysql 出现1251Client does not support authentication protocol requested by server的解决方案

    前期修改root密码问题(首次安装的root密码是空,直接Enter就行): cmd用管理员身份进入,然后输入 mysqladmin -u root -p password newpassword 需 ...

  3. 使用redis-cli --pipe快速插入数据

    具体实现步骤如下:(参考http://www.cnblogs.com/ivictor/p/5446503.html) 1. 新建一个文本文件redis_commands.txt,包含redis命令 S ...

  4. File mapping

    文件映射的三个功能: 1.File mapping allows the process to use both random input and output (I/O) and sequentia ...

  5. How can I manage the modules for python2 when python3 installed as well. In OSX

    ref: https://stackoverflow.com/questions/53385448/how-can-i-manage-the-modules-for-python2-when-pyth ...

  6. Linux 实时查看tomcat 日志--less命令

    查看tomcat日志通常用 tail -n  或者 tail -f 或者grep 或者 vi cat等命令去查看异常信息,但是日志是在不停地刷屏,tail是动态的在变的,我们往往期望从日志最后一行往前 ...

  7. jquery与原生JS实现增加、减小字号功能

    预览效果: 实现代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  8. 《面向对象程序设计(Java)》第四周学习总结

    第一部分 第四章部分理论知识 1.面向对象程序设计概述:java是完全面向对象的,必须熟悉OOP才能编写java程序. 类:由类构造对象的过程称为创建类的实例. 封装:封装是将数据和行为组合在一个包中 ...

  9. shell脚本可以解决的问题

    1.各类监控脚本,文件,内存,磁盘,端口 url 监控报警 2.监控网站目录文件是否被篡改,以及如何恢复 3.如何开发各类服务rsync nginx mysql等启动停止脚本 4.开发mysql主从复 ...

  10. leetcode76

    class Solution: def minWindow(self, s: str, t: str) -> str: n = len(s) if n==0: return "&quo ...