题目

询问能编号最小的割点删掉后使\(a\)和\(b\)无法连通


分析

考虑将\(a\)当作根,那么割点的dfn小于等于\(b\)的dfn就可以了,

怎么会呢,如果有一个环呢,所以得要让割点的子节点小于等于\(b\)的dfn才可以


代码

#include <cstdio>
#include <cctype>
#define rr register
using namespace std;
const int N=200011;
struct node{int y,next;}e[500011];
int as[N],dfn[N],low[N],cut[N],et=1,A,n,m,tot,root;
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline signed min(int a,int b){return a<b?a:b;}
inline void tarjan(int x,int F){
dfn[x]=low[x]=++tot; rr int sub=0;
for (rr int i=as[x];i;i=e[i].next)
if (!dfn[e[i].y]){
tarjan(e[i].y,i^1);
low[x]=min(low[x],low[e[i].y]);
if (dfn[x]<=low[e[i].y]){
++sub;
if (x!=root||sub>1){
if (dfn[e[i].y]<=dfn[A]) cut[x]=1;
}
}
}else if (i!=F) low[x]=min(low[x],dfn[e[i].y]);
}
signed main(){
n=iut();
while (1){
rr int x=iut(),y=iut();
if (!x&&!y) break;
e[++et]=(node){y,as[x]},as[x]=et,
e[++et]=(node){x,as[y]},as[y]=et;
}
root=iut(),A=iut(),tarjan(root,0);
for (rr int i=1;i<=n;++i)
if (cut[i]) return !printf("%d",i);
return !printf("No solution");
}

#割点,Tarjan#洛谷 5058 [ZJOI2004]嗅探器的更多相关文章

  1. ⌈洛谷5058⌋⌈ZJOI2004⌋嗅探器【Tarjan】

    题目连接 [洛谷传送门] [LOJ传送门] 题目描述 某军搞信息对抗实战演习,红军成功地侵入了蓝军的内部网络,蓝军共有两个信息中心,红军计划在某台中间服务器上安装一个嗅探器,从而能够侦听到两个信息中心 ...

  2. 洛谷P5058 [ZJOI2004]嗅探器

    题目描述 某军搞信息对抗实战演习,红军成功地侵入了蓝军的内部网络,蓝军共有两个信息中心,红军计划在某台中间服务器上安装一个嗅探器,从而能够侦听到两个信息中心互相交换的所有信息,但是蓝军的网络相当的庞大 ...

  3. 「洛谷3469」「POI2008」BLO-Blockade【Tarjan求割点】

    题目链接 [洛谷传送门] 题解 很显然,当这个点不是割点的时候,答案是\(2*(n-1)\) 如果这个点是割点,那么答案就是两两被分开的联通分量之间求组合数. 代码 #include <bits ...

  4. 洛谷3388 【模板】割点 tarjan算法

    题目描述 给出一个n个点,m条边的无向图,求图的割点. 关于割点 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点(cut vertex / articul ...

  5. 洛谷3388 tarjan割点

    题目链接:https://www.luogu.com.cn/problem/P3388 tarjan算法果然牛逼,时间复杂度是O(|V|+|E|),所以1e4个结点2e5条边的图完全不在话下orz o ...

  6. tarjan算法比较详细的讲解&&tarjan常见疑难解答&&洛谷P2002 消息扩散题解

    因为有大佬写的比我更长更具体,所以我也就写写总结一下了 引入: 众所周知,很多图中有个东西名叫环. 对于这个东西很多算法都很头疼.(suchas 迪杰斯特拉) 更深层:环属于强联通分量(strongl ...

  7. 洛谷 P2194 HXY烧情侣【Tarjan缩点】 分析+题解代码

    洛谷 P2194 HXY烧情侣[Tarjan缩点] 分析+题解代码 题目描述: 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里 ...

  8. NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序

    原文链接https://www.cnblogs.com/zhouzhendong/p/9258043.html 题目传送门 - 洛谷P3953 题目传送门 - Vijos P2030 题意 给定一个有 ...

  9. 洛谷P3275 [SCOI2011]糖果(差分约束,最长路,Tarjan,拓扑排序)

    洛谷题目传送门 差分约束模板题,等于双向连0边,小于等于单向连0边,小于单向连1边,我太蒻了,总喜欢正边权跑最长路...... 看遍了讨论版,我是真的不敢再入复杂度有点超级伪的SPFA的坑了 为了保证 ...

  10. Tarjan+树形DP【洛谷P2515】[HAOI2010]软件安装

    [洛谷P2515][HAOI2010]软件安装 题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得 ...

随机推荐

  1. Linux驱动开发笔记(四):设备驱动介绍、熟悉杂项设备驱动和ubuntu开发杂项设备Demo

    前言   驱动的开发需要先熟悉基本概念类型,本篇讲解linux杂项设备基础,还是基于虚拟机ubuntu去制作驱动,只需要虚拟机就可以尝试编写注册杂项设备的基本流程.   linux三大设备驱动 字符设 ...

  2. typing模块中Protocol协议的使用

    说明 在 Python 的 typing 模块中,Protocol 是一个用于定义协议(Protocol)的类. 协议是一种形式化的接口,定义了一组方法或属性的规范,而不关心具体的实现.Protoco ...

  3. Cocos Creator 2.x升级至Cocos Creator 3.x

    1.导入类时,批量导入 2.导入 override...关键字时,批量导入 3.this.node.scale = 0.6-->this.node.setScale(0.6, 0.6); 4.n ...

  4. 【Azure 事件中心】使用Kafka的性能测试工具(kafka-producer-perf-test)测试生产者发送消息到Azure Event Hub的性能

    问题描述 Azure Event Hub支持 kafka,所以为了测试消息生产者所在环境与Azure Event  Hub之间发送消息的性能如何,特别使用 kafka 官方测试生产者,消费者的性能工具 ...

  5. 【Azure 应用服务】App Service下部署的应用报错 Out of Memory

    问题描述 应用部署到App Service后,遇见了Out of Memory的错误. 报错信息:GetData  Error:, Exception of type 'System.OutOfMem ...

  6. Java 类中属性的使用

    1 类中属性的使用: 2 * 属性(成员变量) 局部变量 3 * 1.相同点: 4 * 定义变量的个格式: 数据类型 变量名 = 变量值 5 * 先声明 后使用 6 * 变量都有其对应的作用域 7 * ...

  7. C++ //STL---常用算法 //常用遍历 for_each //transform

    1 //STL---常用算法 2 //常用遍历 for_each 3 //transform 4 #include<iostream> 5 #include<string> 6 ...

  8. 使用 Docker 部署 Next Terminal 轻量级堡垒机

    1)Next Terminal 介绍 官网:https://next-terminal.typesafe.cn/ GitHub:https://github.com/dushixiang/next-t ...

  9. trans.bat 将.m4a 文件拖拽到这个上面 自动转换成.mp3 老歌精选-歌曲z

    @chcp 65001 >nul echo off :: 获取文件名 SET filePath=%1 :: 因为这里目录的路径是 E:\老歌精选-歌曲z 是11个字符,所以是从第12个字符到最后 ...

  10. inputNextFocus vue - js 跳转 下一个 tab

    inputNextFocus vue - js 跳转 下一个 tab <template> <Input v-model="val1" ref="inp ...