POJ 1144 Network (求割点)

news/2024/7/7 22:17:22

题意:

给定一幅无向图, 求出图的割点。

割点模板:http://www.cnblogs.com/Jadon97/p/8328750.html

分析:

输入有点麻烦, 用stringsteam 会比较简单

#include<cstdio>
#include<iostream>
#include<queue>
#include<cstring>
#include<string>
#include<sstream>
#include<map>
#include<stack>
#include<vector>
#include<algorithm>
#include<cmath>
#define rep(i,a,b) for(int i = a; i < b; i++)
#define _rep(i,a,b) for(int i = a; i <= b; i++)
using namespace std;
const int maxn = 107;
vector<int> G[maxn];
int n, Index, root, ans;
int dfn[maxn], low[maxn], cut[maxn];
void tarjan(int u, int father){dfn[u] = Index;low[u] = dfn[u];Index++;int child = 0;for(int i = 0; i < G[u].size(); i++){int v = G[u][i];if(!dfn[v]){child++;tarjan(v, u);low[u] = min(low[v], low[u]);if(low[v] >= dfn[u] && u != root) cut[u] = 1;if(u == root && child == 2) cut[u] = 1;}else if(v != father){low[u] = min(low[u], dfn[v]);}}
}
int main(){ios::sync_with_stdio(false);while(cin >> n && n){Index = 1;memset(dfn, 0, sizeof(dfn));memset(low, 0, sizeof(low));memset(cut, 0, sizeof(cut));_rep(i,1,n) G[i].clear();root = 1, ans = 0;string input;while(getline(cin, input)){if(input[0] == '0') break;stringstream ss(input);int u, v;ss >> u;while(ss >> v){G[u].push_back(v);G[v].push_back(u);}}tarjan(1,1);_rep(i,1,n) if(cut[i]) ans++;cout << ans << "\n";}return 0;
}

 

转载于:https://www.cnblogs.com/Jadon97/p/8360184.html


http://lihuaxi.xjx100.cn/news/258062.html

相关文章

如何教计算机认识手写数字(中)

本文详细介绍了如何利用Matlab编写KNN代码进行手写数字的识别。

Linux内核网络栈1.2.13-有关tcp/ip协议的基础入门

参考资料 <<linux内核网络栈源代码情景分析>>Linux内核网络栈的基础内容 主要分析tcp/ip相关的基本构成&#xff0c;概述了socket的系统调用进入内核的一个流程&#xff0c;并了解了协议的执行流程。为后续的理解学习做铺垫。 应用程序调用进入内核的过程 Tcp/…

用C#实现FTP搜索引擎

晚辈最近用C#写了一个教育网FTP搜索引擎&#xff0c;希望能得到高手的指点。 网址&#xff1a;http://soso.ccnu.com.cn http://it.ccnu.edu.cn/soso 部分代码&#xff1a; using System;using softplib;using System.Threading;using System.Collections;using System.Ne…

Python 搭建 AI 健身评分系统

作者|李秋键来源|AI科技大本营&#xff08;ID:rgznai100&#xff09;引言人工智能作为计算机科学的一个分支,其主要是将人的思维与计算机网络相结合,令整个系统在对某一类事物进行处理时实现人工智能化分析,然后结合内部程序的设定,分析出当前事务处理所具备的各类功能如何实现…

终于把XGBoost总结写出来了!

↑↑↑关注后"星标"Datawhale每日干货 & 每月组队学习&#xff0c;不错过Datawhale干货 作者&#xff1a;王茂霖&#xff0c;华中科技大学&#xff0c;Datawhale成员内容概括XGBoost模型及调参总结XGBoost原理XGBoost优势总结XGBoost参数详解XGBoost快速使用XGBo…

使用 StopWatch 优雅打印执行耗时

欢迎关注方志朋的博客&#xff0c;回复”666“获面试宝典0x01&#xff1a;背景有时在做开发的时候需要记录每个任务执行时间&#xff0c;或者记录一段代码执行时间&#xff0c;最简单的方法就是打印当前时间与执行完时间的差值&#xff0c;然后这样如果执行大量测试的话就很麻烦…

Linux内核网络栈1.2.13-网卡设备的初始化流程

参考资料 <<linux内核网络栈源代码情景分析>>网卡设备的初始化 本文主要描述一下网卡设备的整个初始化的过程&#xff0c;该过程主要就是根据设备的硬件信息来获取与传输网络数据&#xff0c;注册相关的网卡中断处理函数&#xff0c;协议的初始化等内容。 初始化…

Matlab与线性代数 -- 矩阵的水平连接和垂直连接

本图文详细介绍了Matlab中矩阵的水平连接和垂直连接。