
【算法】Tarjan算法
文章平均质量分 88
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【USACO】2017 December Contest, Platinum题解
【比赛经历】大概顺利满分了,就是T2的代码比较难调。T2能够直观地反映出GDB和输出调试结合的优越性。【T1】Standing Out from the Herd【题目链接】点击打开链接【题解链接】点击打开链接【思路要点】后缀的前缀是子串,考虑使用后缀结构来解题。笔者选用的是后缀树。对所原创 2018-02-07 12:54:53 · 1031 阅读 · 0 评论 -
【POJ3648】Wedding
【题目链接】点击打开链接【思路要点】需要输出方案的 2−SAT2-SAT2−SAT 问题模板题。时间复杂度 O(N+M)O(N+M)O(N+M) 。【代码】#include<cstdio>#include<vector>#include<algorithm>#include<cstring>#include<...原创 2019-07-09 20:41:44 · 333 阅读 · 0 评论 -
【省内训练2019-06-03】Graph
【思路要点】首先考虑 Type=0Type=0Type=0 的做法。矩阵 AiA^iAi 的 (x,y)(x,y)(x,y) 处的元素表示从 xxx 出发走 iii 步是否能够到达 yyy 。问题即为令 xxx 为一个足够大的数,找到最小的 ddd ,使得 Ax+d=AxA^{x+d}=A^xAx+d=Ax 。定义无向图 GGG 是 kkk 分图,当且仅当可以给其中每一个点 iii 拟...原创 2019-06-06 15:25:00 · 214 阅读 · 0 评论 -
【LOJ3077】「2019 集训队互测 Day 4」绝目编诗
【题目链接】点击打开链接【思路要点】不难发现各个边双连通分量可以分开处理,桥边可以直接删除。可以证明,对于每一个边双连通分量,当 M−NM-NM−N 超过 O(N)O(\sqrt{N})O(N) 级别,答案一定为 YesYesYes 。那么,将剩余图中的度为 222 的点缩去,剩余的图是一张点数和边数均在 O(N)O(\sqrt{N})O(N) 级别的图。选择一个起始点...原创 2019-05-03 14:05:16 · 1102 阅读 · 0 评论 -
【CodeForces】CodeForces Round #549 (Div. 1) 题解
【比赛链接】点击打开连接【题解链接】点击打开链接【A】 The Beatles【思路要点】任取一个合法的起始点,枚举所有可能的步长 lll ,计算步数 N×kgcd(Nk,l)\frac{N\times k}{gcd(Nk,l)}gcd(Nk,l)N×k ,取最优值即可。时间复杂度 O(NLogV)O(NLogV)O(NLogV) 。【代码】#incl...原创 2019-04-04 20:50:38 · 989 阅读 · 0 评论 -
【省内训练2018-09-13】Link Cut Digraph
【思路要点】 首先,我们将问题转化一下,我们希望求出每条边连接的两个点在什么时候开始能够相互到达。 对于此类连通性问题,考虑整体二分: 令 solve(l,r,S)solve(l,r,S)solve(l,r,S) 表示已经确定 SSS 中的边连接的两个点在第 lll 条边到第 rrr 条边中的某一条边被加入时开始变得连通,并在加入过第 111 条边到第 l−1l−1l-1 条...原创 2018-09-13 20:39:56 · 532 阅读 · 0 评论 -
【BZOJ4945】【UOJ317】【NOI2017】游戏
【题目链接】BZOJUOJ【思路要点】考虑若不存在“x”,那么剩余的问题就是一个2-SAT的基本问题。不妨令字符串中仅包含c,显然其他的问题是对称的。限制(x,A,y,A):连接(x,A)->(y,A),(y,B)->(x,B)。限制(x,A,y,B):连接(x,A)->(y,B),(y,A)->(x,B)。限制(x,A,y,C):连接(x,A)->(y,A),(x,...原创 2018-05-31 19:31:35 · 296 阅读 · 0 评论 -
【BZOJ4651】【UOJ220】【NOI2016】网格
【题目链接】BZOJUOJ【思路要点】当且仅当跳蚤个数不足两个,或跳蚤个数为两个,并且他们位置相邻,答案为-1。否则,当且仅当原本跳蚤中存在不连通的跳蚤,答案为0。否则,当且仅当原图中存在割点,答案为1。否则答案为2。将整张图建出来,依次检验以上判断标准,可以得到一个时空复杂度为\(O(N*M)\)的做法。我们发现\(N\)和\(M\)均很大,而\(C\)很小,这意味着存在大面积的空白,考虑只考虑...原创 2018-05-29 17:41:56 · 384 阅读 · 0 评论 -
【CodeForces】CodeForces Round #485 (Div. 1 + Div. 2) 题解
【比赛链接】Div. 1Div. 2【题解链接】点击打开链接【Div.2 A】Infinity Gauntlet【思路要点】按照题意模拟即可。时间复杂度\(O(NLogN)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 100005;template <typename T> voi...原创 2018-06-05 15:43:52 · 659 阅读 · 0 评论 -
【CodeForces487E】【UOJ30】Tourists
【题目链接】CodeForcesUOJ【思路要点】首先我们来证明点双连通分量的一个性质。引理:在一个点双连通分量中,给定任意三个不同的点\(a\),\(b\),\(c\),一定存在一条从\(a\)到\(c\)的,经过每个点至多一次的简单路径经过了\(b\)。证明:考虑网络流。在原图中存在无向边的点对之间建立无向边,容量为1;对每个点拆点限流,容量为1;由\(a\)和\(c\)向汇点连边,容量为1;...原创 2018-05-20 11:00:27 · 322 阅读 · 0 评论 -
【BZOJ5033】【JSOI2014】强连通图
【题目链接】点击打开链接【思路要点】第一问本质上是问图中最大的强连通分量的大小,Tarjan算法即可。对于第二问,我们先将图缩点,显然答案有下界\(max\{cntin,cntout\}\),其中\(cntin\)为入度为0的点的个数,\(cntout\)为出度为0的点的个数。题目中的两个样例均满足答案恰好为下界,因此我们猜测答案始终为下界,并试图构造一组解。我们将所有入度为0的点排在一边,出度为...原创 2018-04-25 12:59:04 · 455 阅读 · 0 评论 -
【BZOJ4727】【POI2017】Turysta
【题目链接】点击打开链接【思路要点】所给的图是一张竞赛图。竞赛图满足性质:必定存在一条哈密尔顿路径。我们采取构造一条哈密尔顿路径的方式来证明这一点。首先,假设我们现在已经有了一条包含\(N\)个点的哈密尔顿路径,沿路径将节点标号为\(1,2,..,N\),我们在竞赛图中加入第\(N+1\)个点,并希望证明一定仍然可以构造一条包含全部\(N+1\)个点的哈密尔顿路径。如果存在边\(N+1\Right...原创 2018-03-17 17:29:30 · 458 阅读 · 1 评论 -
【LOJ3176】「IOI2019」景点划分
【题目链接】点击打开链接【思路要点】不妨令 a≤b≤ca\leq b\leq ca≤b≤c ,由 a+b+c=Na+b+c=Na+b+c=N ,则有 a≤N3,b≤N2,c≥N3a\leq\frac{N}{3},b\leq\frac{N}{2},c\geq\frac{N}{3}a≤3N,b≤2N,c≥3N 。由于我们只希望有两个导出子图连通,因此一定是 a,ba,ba,b...原创 2019-08-15 21:40:17 · 954 阅读 · 0 评论