摘要:Solution 简单的$Tarjan$题。 有大佬现成博客 就不写了 → 传送门 Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<queue> 5 #define rd read() 6 us
阅读全文
摘要:Solution 先Tarjan求出点双联通分量 并缩点。 用$multiset$维护 点双内的最小点权。 容易发现, 点双内的最小点权必须包括与它相连的割边的点权。 所以我们必须想办法来维护。 所以考虑用割点的点权更新它的父节点, 这样查询 点双 内的最小点权只需要查询本身的 $multiset$
阅读全文
摘要:Solution Tarjan 点双缩点, 加上树上差分计算。 注意特判。。。 我特判挂了好久呜呜呜 Code 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<vector> 5 #define rd r
阅读全文
摘要:Description 给出一个无向图, 要求找出某个点$u$, 去掉$u$和$u$所连的边, 所剩下的节点构成一棵树。 Solution 首先, 割点肯定是不可能满足条件的, 因为去掉割点后会构成若干个不连通的图。 所以我们先求出割点, 再查找不是割点, 并且 去掉它连接的边, 剩下的 边数为$N
阅读全文
摘要:Description 定义一个半联通图为 : 对任意的两个点$u, v$,都有存在一条路径从$u$到$v$, 或从$v$到$u$。 给出一个有向图, 要求出节点最多的半联通子图, 并求出方案数。 Solution 先进行一次$Tarjan \ SCC$ 缩点, 得到一个有向无环图, 则半联通子图一
阅读全文
摘要:Description 判断一个有向图是否对于任意两点 $x$, $y$ 都有一条路径使$x - >y$或 $y - >x$ Solution 对于一个强联通分量内的点 都是可以互相到达的。 接下来我们考虑缩点后的DAG是否任意两点都有路径能使一点到达另一点。 然后我就不会了~~ 我们进行一遍拓扑排
阅读全文
摘要:Solution 输入中没有出现过的矿场点是不用考虑的, 所以不用考虑只有 一个点 的点双联通分量。 要使某个挖矿点倒塌, 相当于割去这个点, 所以我们求一遍割点和点双联通分量。 之后的点双联通分量构成一棵树。 树上的节点有两种情况 1: 仅有一条边(仅有 一个割点 在内部)—— 相当与叶子节点,
阅读全文
摘要:Description 给出一个有向图, 要求出至少从哪几个点出发, 能不漏地经过所有节点。 再求出至少加几条边, 才能使图变成一个强联通分量 Solution 求出所有强联通分量, 形成一个有向无环图, 第一问题就是求出有多少强联通分量的入度为 $0$ 第二个问题就是求出 入度为$0 $和 出度为
阅读全文
摘要:Description 有N个骑士和M对憎恨关系, 开会必须满足以下要求 1: 互相憎恨不能坐在相邻位置 2:奇数个骑士 现要求出有几个骑士不能参加任何可能的会议 Solution 将没有憎恨关系的两个骑士连无向边, 求出每个可能在奇数环中的骑士, 剩下的就是不能参加任何会议的骑士 有两个引理 1:
阅读全文
摘要:Description 给定$N$个点和 $M$条边的无向联通图, 有$Q$ 次操作, 连接两个点的边, 问每次操作后的图中有几个桥 Solution 首先Tarjan找出边双联通分量, 每个双联通分量缩成一个点, 就构成了一棵树, 每一条树边都是桥。 执行连$u, v$ 边时, 用并查集跳到没有桥
阅读全文
摘要:Description 求出如果把每个点割去, 有序对$(x, y)$且 $x,y$不连通的对数 Solution 做一遍Tarjan割点,一个点$x$ 不是割点, 那么有序对数为$ 2 * (n - 1)$ 如果$x$为割点, 那么割去$x$ 所构成的联通块有3类: 1: $x$ 2: $x$的搜
阅读全文