#割点,Tarjan#洛谷 5058 [ZJOI2004]嗅探器
题目
询问能编号最小的割点删掉后使\(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]嗅探器的更多相关文章
- ⌈洛谷5058⌋⌈ZJOI2004⌋嗅探器【Tarjan】
题目连接 [洛谷传送门] [LOJ传送门] 题目描述 某军搞信息对抗实战演习,红军成功地侵入了蓝军的内部网络,蓝军共有两个信息中心,红军计划在某台中间服务器上安装一个嗅探器,从而能够侦听到两个信息中心 ...
- 洛谷P5058 [ZJOI2004]嗅探器
题目描述 某军搞信息对抗实战演习,红军成功地侵入了蓝军的内部网络,蓝军共有两个信息中心,红军计划在某台中间服务器上安装一个嗅探器,从而能够侦听到两个信息中心互相交换的所有信息,但是蓝军的网络相当的庞大 ...
- 「洛谷3469」「POI2008」BLO-Blockade【Tarjan求割点】
题目链接 [洛谷传送门] 题解 很显然,当这个点不是割点的时候,答案是\(2*(n-1)\) 如果这个点是割点,那么答案就是两两被分开的联通分量之间求组合数. 代码 #include <bits ...
- 洛谷3388 【模板】割点 tarjan算法
题目描述 给出一个n个点,m条边的无向图,求图的割点. 关于割点 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点(cut vertex / articul ...
- 洛谷3388 tarjan割点
题目链接:https://www.luogu.com.cn/problem/P3388 tarjan算法果然牛逼,时间复杂度是O(|V|+|E|),所以1e4个结点2e5条边的图完全不在话下orz o ...
- tarjan算法比较详细的讲解&&tarjan常见疑难解答&&洛谷P2002 消息扩散题解
因为有大佬写的比我更长更具体,所以我也就写写总结一下了 引入: 众所周知,很多图中有个东西名叫环. 对于这个东西很多算法都很头疼.(suchas 迪杰斯特拉) 更深层:环属于强联通分量(strongl ...
- 洛谷 P2194 HXY烧情侣【Tarjan缩点】 分析+题解代码
洛谷 P2194 HXY烧情侣[Tarjan缩点] 分析+题解代码 题目描述: 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里 ...
- NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
原文链接https://www.cnblogs.com/zhouzhendong/p/9258043.html 题目传送门 - 洛谷P3953 题目传送门 - Vijos P2030 题意 给定一个有 ...
- 洛谷P3275 [SCOI2011]糖果(差分约束,最长路,Tarjan,拓扑排序)
洛谷题目传送门 差分约束模板题,等于双向连0边,小于等于单向连0边,小于单向连1边,我太蒻了,总喜欢正边权跑最长路...... 看遍了讨论版,我是真的不敢再入复杂度有点超级伪的SPFA的坑了 为了保证 ...
- Tarjan+树形DP【洛谷P2515】[HAOI2010]软件安装
[洛谷P2515][HAOI2010]软件安装 题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得 ...
随机推荐
- Windows11补丁更新后无法使用Wifi和蓝牙
最近在我的ThinkPAD T14上更新了Windows 11补丁,重启后Wifi和蓝牙鼠标都不能使用了,无法连接Wifi网络,也无法添加蓝牙设备. 使用厂家自带的管理工具查看驱动都是最新的,一度不知 ...
- [软件工程] CMMI是什么?
序 能力成熟度模型集成(CMMI) 一.CMMI(能力成熟度模型集成)概述 CMMI是由美国软件工程学会(software engineering institue,简称SEI)制定的一套专门针对软件 ...
- React实现导航栏点击高亮
在jquery中实现导航栏的切换只需要一行代码找到同级其他元素removeClass以及添加点击元素addClass就可以实现了,但是React没法直接找到同级元素,这个时候需要一点js中的思维,根据 ...
- 第121篇: DOM常用类型(Document、Element)
好家伙,本篇为<JS高级程序设计>第十四章"DOM编程"学习笔记 1.Document类型 Document 类型是 JavaScript 中表示文档节点的类型. ...
- 【Azure API 管理】Azure API Management通过请求中的Path来限定其被访问的频率(如1秒一次)
问题描述 Azure API Management 是否可以通过请求中的Path来限定其被访问的频率? 在系统Request中发现某个Path 在短时间内被频繁的调用,影响了后台服务的性能及安全,所以 ...
- AntSK:打造你的本地AI知识库——离线运行详细教程
亲爱的读者朋友们,今天我要给大家介绍一个强大的开源工具--AntSK.这个工具能让您在没有Internet连接时依然能使用人工智能知识库对话和查询,想象一下,即使在无网络的环境中,您也能与AI进行愉快 ...
- 如何将应用一键部署至多个环境?丨Walrus教程
在 Walrus 平台上,运维团队在资源定义(Resource Definition)中声明提供的资源类型,通过设置匹配规则,将不同的资源部署模板应用到不同类型的环境.项目等.与此同时,研发人员无需关 ...
- ConcurrentHashMap的put方法
使用JDK8 源码: public V put(K key, V value) { return putVal(key, value, false); } /** Implementation for ...
- Mybatis分页插件有效范围
一.问题由来 在修改了一段代码后,将修改后的功能放在测试环境简单测试后,发现没有任何问题,因为测试环境数据量非常少(10条以下),因此 也就没有怀疑修改的代码存在问题,直接上生产环境,测试的时候发现后 ...
- 在运行程序是出现sh: 行 1: cls: 未找到命令
在运行程序是出现sh: 行 1: cls: 未找到命令 原因是system("cls");--这是在程序中调用系统命令,但是linux识别不了.功能是清除当前的终端显示数据.找到l ...