摘要: Tarjan貌似跟Hopcroft都是Cornell的大神。总的来说, Tarjan算法基于一个观察,即:同处于一个SCC中的结点必然构成DFS树的一棵子树。 我们要找SCC,就得找到它在DFS树上的根。 那么怎么找呢? 考虑一下,如果DFS访问到了某个结点u,又顺着u来到了结点v, 但从v发出了一 阅读全文
posted @ 2019-07-17 09:55 sdzmq 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 次小生成树,就是求除了最小生成树之外最小的那个生成树。 下面介绍一下利用prim求次小生成树的主要步骤。 1.先求出来最小生成树。并将最小生成树任意两点之间路径当中的权值最大的那一条找出来,为什么要找最大的呢,因为生成树加入一条边之后一定构成了回路,那么肯定要去掉这个回路当中一条边才是生成树,那么, 阅读全文
posted @ 2019-07-17 08:54 sdzmq 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 以下转自:dalao 差分约束系统有两种方式可以求解,最短路和最长路。当我们把不等式整理成d[a]+w<=d[b]时,我们求最长路。整理成d[a]+w>=d[b]时,我们求最短路。当求最短路时,我们通常要把各点距离初始化为正无穷,求最短路,把各点距离逐渐减小,直到符合所有不等式。也就是开始 各点不符 阅读全文
posted @ 2019-07-17 08:32 sdzmq 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 一个直接用并查集求最小生成树的板子题 #include <iostream> #include <cstdio> #include <algorithm> using namespace std; struct llo{ int a,b,c; } e[20003]; int f[2003],n,m, 阅读全文
posted @ 2019-07-16 20:52 sdzmq 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 这道题跟猴子那道题差不多,挺简单的一个倒序并查集,变拆为建,把被毁的做标记,每个点可连的边也记录下来,先把能连的都连起来,然后从最后一个被毁的星球开始连可以连的边(指此时对方星球未被摧毁)作为下一个被毁星球重建的基础。细节比较多。 #include <iostream> #include <cstd 阅读全文
posted @ 2019-07-16 17:19 sdzmq 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 并查集+离散化,可惜我不会离散化。 然后我就学了学哈哈哈哈哈哈哈又会了点新东西。 用map做映射(虽然并不懂为什么用map)把所有的数都换到一个数组里去,然后手动去重(if(cnt[i]!=cnt[i-1]) Map[cnt[i]]=++sum;),放进map里去。 然后在做的时候就可以只用映射的数 阅读全文
posted @ 2019-07-16 14:48 sdzmq 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 真的不是我懒啊啊啊,只是人家写的太好了。 讲的扩欧的应用,题不算难(虽然我还是不会) dalao 一点小坑就是负数的替换,花姐写的很清楚了,为的是让kw+lz=s的各符号成立,还有就是最后%l/ans不是很好理解。 实际上是找的一个素数(即b/gcd(,)与x的关系),列出了同余方程 思路出不来时就 阅读全文
posted @ 2019-07-15 22:18 sdzmq 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 浪费我好多时间因为没找着一篇好的教程嘤嘤嘤 推荐一位大神的博客(是真的厉害):dalao 以下是c++版本的程序 阅读全文
posted @ 2019-07-15 19:00 sdzmq 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 数论的卢卡斯,据说可以只记结论啦啦啦啦。(反正我也不会~) 实际上也是好几个知识点的集合吧。 1。快速幂 2。组合数求法 a【i】是%p意义下的i的阶乘。(一种鬼算法) 好像还跟逆元有关cm(a,b)=(a!/(a−b)!​)(p−2)mod p 逆元:a[i]=(p-p/i)*a[p%i](这个之 阅读全文
posted @ 2019-07-15 14:30 sdzmq 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 今天是线性结构和基础数论的一天! 这个题,呃,实际上它是个递推式,跟栈没有半毛钱关系。 首先,一进一出,f【i】【k】中i表示已进栈i个,已出栈k个时的方案数。 状态转移方程:f【i】【k】=f【i-1】【k】+f【i】【k-1】; f【i-1】【k】表示它的上一个状态(进栈i-1个,出栈k个)是进 阅读全文
posted @ 2019-07-15 08:44 sdzmq 阅读(108) 评论(0) 推荐(0) 编辑