题目链接: "戳我" 广义SAM 就是我们把两个串都建立到后缀自动机上面,然后记录一下每个np节点到底在哪个串里面出现了。(因为只有np节点是真正建立出来,有实际意义的,代表前缀的节点) 然后我们建立出来dfs树,用这个endpos类的大小,乘上它在第一个串中出现的次数 第二个串中出现的次数即可。 ...
分类:
其他好文 时间:
2019-05-03 09:47:12
阅读次数:
106
1.BFS:树层序遍历 DFS:树先序遍历 均可判断是否为连通图,因为若为非联通的,一遍遍历访问不了所有结点。。 2.最小生成树 prim算法:贪心算法,先找最小权边,将此两点点作为点集合,再找离此集合最小权边的点加入,无限加入。 Kruskal算法:对所有点的集合里从小到大加入边(只要不构成回路) ...
分类:
编程语言 时间:
2019-03-19 21:33:43
阅读次数:
192
边的分类 有向图边分为四类: 树边, 前向边, 返祖边(后向边), 横叉边. 上图: 判定 有向图 对图进行dfs, 不考虑已经遍历过的点, 得到dfs序 $dfn_i$. 在dfs过程中, 记录当前dfs栈. 对于边$(u,v)$, 树边: $vis_v==0$; 前向边: $vis_v==1$ ...
分类:
移动开发 时间:
2019-03-17 21:23:40
阅读次数:
257
套路地, 考虑dfs树上搞事情 容易发现,对于(x,y)如果dfs树上距离为奇数,或者dfs树上路径中有一条边在某个简单奇环上,那么可以经过奇数条边到达 判断边在某个奇环上: 点双,点双中黑白染色,如果有一个奇环,那么点双中的所有边都在一个奇环中 询问 倍增预处理,LCA搞一下即可 ...
分类:
其他好文 时间:
2019-02-03 01:03:59
阅读次数:
211
大意:$n$结点,$m$条边无向图, 有$k$个人, 每个人最多走$\left\lceil\frac {2n}{k}\right\rceil$步, 求一种方案使得$k$个人走遍所有的点 $n$结点树的欧拉序长度为$2n-1$, 直接取$dfs$树的欧拉序即可 ...
分类:
其他好文 时间:
2019-01-31 13:28:41
阅读次数:
206
船送门 一道树状dp,在处理子问题上的做法真的就是单纯的标准dfs树状dp。从叶子节点向上枚举可以得到每个节点的最大子树,但这题的问题在于,没有给出根节点,而且每个节点都可以作为根节点。 那么我们只需要枚举每个结点作为根节点时的情况。在每种情况中,遍历与根结点相连的结点,求出以该节点为根节点的最大子 ...
分类:
其他好文 时间:
2019-01-29 23:14:27
阅读次数:
205
Input Output 题意:给你一颗树,选择一个三个点构成的集合,使得这三个点不在一条直线上(意思就是 从一个点出发,用一条不回头的线不能将这三个点连起来)问一共有多少个这样的集合 思路 :先求出一共有多少个集合,就是Cn3 (n-2)*(n-1)*n/6 ; 然后再求不符合条件的个数 求不符合 ...
分类:
其他好文 时间:
2018-11-14 22:31:37
阅读次数:
171
割点: 若在dfs树中,该点为根节点,且他有至少两个儿子,则他是割点;若他不是根节点,但他的儿子们能到达的dfn值最小的点的dfn值大于他的,则他是割点。用强连通分量的思路求解即可。 桥: 若一个点是割边,则他所连接的dfn值较大的点能到达的dfn值最小的点必然比他连接的另一个点晚被dfs到。 均可 ...
分类:
其他好文 时间:
2018-11-08 23:22:57
阅读次数:
263
武当派一共有 nn 人,门派内 nn 人按照武功高低进行排名,武功最高的人排名第 11,次高的人排名第 22,... 武功最低的人排名第 nn。现在我们用武功的排名来给每个人标号,除了祖师爷,每个人都有一个师父,每个人可能有多个徒弟。 我们知道,武当派人才辈出,连祖师爷的武功都只能排行到 pp。也就 ...
分类:
编程语言 时间:
2018-10-25 21:12:10
阅读次数:
180
考虑异或最短路应该怎么求。那么这是个WC原题,dfs一遍找到所有有用的环丢进线性基即可,因为每一个环的权值都是可以取到且不对其他部分产生影响的。 现在给了一棵树,不妨就把他看做原图的dfs树。每增加一条边就是增加了一个环。算出权值后,现在问题变为求一个数和任选一段区间里的数的最大异或值。 比较暴力的 ...
分类:
其他好文 时间:
2018-09-17 13:35:08
阅读次数:
139