思路 显然endpos的大小就对应了对应子串的出现次数,所以快速求出endpos的大小,然后用它更新对应子串长度(minlen[i]~maxlen[i])的答案即可 endpos的大小可以拓扑排序求出,发现suflink构成了一棵树,每个点代表的串都是孩子的后缀,所以$$endpos[x]\ge\s ...
分类:
其他好文 时间:
2019-03-04 09:43:36
阅读次数:
178
一.定义 拓扑排序是将有向无环图(DAG)中的顶点进行线性排序,且该序列满足以下两个条件: 1.每个顶点出现且仅出现一次; 2.如果A有一条有向边到达B,那么在排序后的序列中A一定在B前面。 二.实现方法 拓扑排序的具体实现步骤如下(<u,v>表示一条u到v的有向边): 1.找到当前DAG入度为0的 ...
分类:
编程语言 时间:
2019-02-28 18:07:04
阅读次数:
226
link:https://codeforces.com/contest/1131 题意: 给定一些大小比较,输出排名。 思路: 这道题我用的是拓扑排序,又因为有等于号的存在,我用了并查集。 结束后这道题惨遭fst,因为我拓扑排序本应只放入一个集合的代表点,但是我放入了多次。 #include <al ...
分类:
其他好文 时间:
2019-02-24 11:03:50
阅读次数:
163
这个题有点意思,正常写法肯定会T,然后需要优化。先用拓扑排序重构一遍树,然后进行一个非常神奇的操作:把每个点放在他的食物的lca上,然后计算的时候直接dfs全加上就行了。为什么呢,因为假如你的食物的lca死了,你就很自然的死了。这个题还要加一个超级源点,一开始我没加只拿了20分。但是不知道为什么,后 ...
分类:
编程语言 时间:
2019-02-23 01:08:11
阅读次数:
202
2 hdu 4109 求关键路径(最长路)。 解 1. 用最短路算法,把 2. 拓扑排序 3 zoj 1508 有若干个区间 $[a_i,b_i]$ ,现在请找到一个整数集合 $Z$ ,使得 $|Z∩[a_i,b_i]|=c_i$ 。 差分约束。 解 差分约束建边: 若 $x_1+c≥x_2$ ,则 ...
分类:
其他好文 时间:
2019-02-22 10:34:49
阅读次数:
190
拓扑排序是一种判断是否是单向无环图的一种方法。 开一个足够容纳节点个数的统计入度的数组 deg[],每次读完边之后统计入度的大小。 1.一个(queue)队列用来存放初始入度为0的边。 2.每次读出队头,并让与对头相连的节点deg[q.front()]--,判断其值为0的话就入队。 3.只要队列不为 ...
分类:
编程语言 时间:
2019-02-20 09:48:01
阅读次数:
181
题目:Candies Distribution 传送门:http://codeforces.com/problemset/problem/1054/C 分析: 方法一: 1)类似拓扑排序的做法。 2)当$L_i,R_i$均为$0$时,这个数就是当前最大的数,可以移除并且去掉他带来的影响,即左边的$R ...
分类:
其他好文 时间:
2019-02-19 01:26:23
阅读次数:
178
邻接表使用vector实现 使用数组实现邻接表 ...
分类:
编程语言 时间:
2019-02-15 01:26:00
阅读次数:
159
https://www.cnblogs.com/31415926535x/p/10367483.html 貌似从来没有敲过拓扑排序的板子,,,记录一下 拓扑排序就是对DAG有向无环图中的边u v,要求排序出一个点的序列,满足u在v的前面,, 算法的思路是不停的将入度为零的点u放到前面,并且对u能到达 ...
分类:
编程语言 时间:
2019-02-12 23:14:55
阅读次数:
302
这是我们学校做的数据结构课设,要求分别输出关键路径,我查遍资料java版的只能找到关键路径,但是无法分别输出关键路径 c++有可以分别输出的,所以在明白思想后自己写了一个java版的 函数带有输入函数也有已经存进去的图 如上图关键路径被分别输出(采用了DFS算法): 例:AOE 图如下: 算法设计如 ...
分类:
编程语言 时间:
2019-02-07 13:42:41
阅读次数:
177