UVA 315 :Network (无向图求割顶)
题目链接
题意:求所给无向图中一共有多少个割顶
用的lrj训练指南P314的模板
#include<bits/stdc++.h> using namespace std; typedef long long LL;const int N=109; struct Edge {int to,next;Edge(){}Edge(int _to,int _next){to=_to;next=_next;} }edge[N*N*2]; int head[N];int dfn[N],low[N]; int iscut[N]; int n,tot; int time_tag;void addedge(int u,int v) {edge[tot]=Edge(v,head[u]);head[u]=tot++; }void init() {memset(dfn,0,sizeof(dfn));memset(iscut,0,sizeof(iscut));memset(head,-1,sizeof(head));tot=time_tag=0; }void dfs(int u,int pre) {low[u]=dfn[u]=++time_tag;int child=0; //子节点数目 for(int i=head[u];~i;i=edge[i].next){int v=edge[i].to;if(!dfn[v]) // 把dfn[]当vis[]使用 {child++;dfs(v,u);low[u]=min(low[u],low[v]);if(low[v]>=dfn[u])iscut[u]=1;}else if(dfn[v]<dfn[u] && v!=pre)low[u]=min(low[u],dfn[v]);}if(pre<0&&child==1) iscut[u]=0; //只有一个孩子的根节点 }int main() {while(scanf("%d",&n)>0&&n){init();int u,v;while(scanf("%d",&u)>0&&u){while(getchar()!='\n'){scanf("%d",&v);addedge(u,v);addedge(v,u);}}dfs(1,-1);int ans=0;for(int i=1;i<=n;i++)if(iscut[i]) ans++;printf("%d\n",ans);} }
转载于:https://www.cnblogs.com/Just--Do--It/p/7569112.html
UVA 315 :Network (无向图求割顶)相关推荐
- UVA - 315 Network(tarjan求割点)
题目链接:点击查看 题目大意:给出一个由n台电脑互相连接而成的网络系统,其中有一些电脑如果一旦损坏,则会造成整个网络出现缺口,导致某些地方无法互相连通,我们称这种电脑为关键点,题目需要求出有多少个关键 ...
- 无向图的割顶、桥、BCC和eBCC相关
几个例题代码待填 割顶:若去掉一个点和与这个点相连的边后,图不再连通,则这个点是割顶. 求法:若节点\(u\)存在一棵子树\(v\)满足\(v\)中所有节点的回边都指向\(u\)及以下的节点(即\ ...
- uva 315 (poj 1144 求割点)
题意:给你一张无向图,求割点的个数. 思路:输入稍微处理一下接着直接套模版. 1 #include <iostream> 2 #include <cstdio> 3 #incl ...
- 无向图求割(找桥)tarjan
本博客参考了李煜东的<算法竞赛进阶指南>,大家要是觉得这篇文章写的不错请大家支持正版.豆瓣图书 我在之前的博客中讲解了搜索序时间戳,这次我们讲讲追溯值的概念. 追溯值: 设subtree( ...
- 【BZOJ1123】[POI2008]BLO【割顶】
[题目链接] 题意可见discuss. 用Tarjan求割顶,然后对割顶的所有子树求点对个数(前缀和扫一遍),最后把自身和其他点的答案加上. 没注意边,数组开小了. /* Pigonometry */ ...
- [Codeforces 555E]Case of Computer Network(Tarjan求边-双连通分量+树上差分)
[Codeforces 555E]Case of Computer Network(Tarjan求边-双连通分量+树上差分) 题面 给出一个无向图,以及q条有向路径.问是否存在一种给边定向的方案,使得 ...
- 洛谷 P3388 【模板】割点(割顶) 根+非根+dfn[]+low[]+不一样的Tarjan算法
洛谷 P3388 [模板]割点(割顶) 根+非根+dfn[]+low[]+不一样的Tarjan算法 Tarjan算法,详见https://blog.csdn.net/mrcrack/article ...
- 无向图求起点到终点所有路径
无向图求起点到终点所有路径 public class Node {public String name = null;public ArrayList<Node> relationNode ...
- P3388 【模板】割点(割顶) 题解
博客园同步 原题链接 简要题意: 给定一个图,求所有割点. 割点(割顶)的定义:去掉该点整个图不连通. 前置知识: 强连通分量的 Tarjan \texttt{Tarjan} Tarjan 求法. 不 ...
最新文章
- nefu 628 Garden visiting
- 从源码理解ReentrantLock
- 【勉强采用】反欺诈四大手段一秒get
- mysql 常规命令操作_mysql数据库常规命令操作
- 几何分布和超几何分布
- 儿童手表怎么删除联系人_双11儿童手表选购指南:全天候24小时定位,做孩子的贴身保镖...
- 不用“背”单词,1个方法牢记7000单词:我是如何做到的?
- ElasticSearch 6.4.3 启动报错: [Cannot assign requested address: bind]
- Oracle数据库关闭的三种方法
- 递推DP UVA 473 Raucous Rockers
- 语音识别 自然语言处理
- UESTC 1634 去年春恨却来时,落花人独立,微雨燕双飞
- Java发送电子邮件(使用mail.jar和activation.jar)
- unity Inspector 面板扩展
- 织梦模板之家:如何安装更换织梦cms模板
- py3+requests+urllib+bs4+threading,爬取斗图图片
- js 中的this指针
- 怎么配置java环境_idea配置java环境
- 【QQ空间】免费flash挂件
- iPhone升级iOS 16后出现提示“面容ID不可用”怎么办?
热门文章
- Linux awk 命令 说明
- Linux终端中设置vi编辑命令
- python2.7 升级到 python3.6
- Linux与shell环境,Linux 环境及 Shell 程序
- linux shell读取文件,Linux shell逐行读取文件的方法
- 文件和参数一起上传_Spring boot的文件上传
- Swift3.0语言教程获取字符
- 重庆事业单位计算机职称评定,看效果 | 重庆事业单位改革 职称评定不再“终身制”...
- 怎么转换html格式文件怎么打开,html格式怎么转换
- html优化网站的方法,利用HTML优化加快网页速度方法介绍