一. 简单的直接算法 比较次数:(n-m-1)*m次 时间复杂度O(mn) 二. Rabin-karp算法 算法思想:将字符串转化成数字进行粗比较,筛选后进行细比较 算法设计: (1)直接数值比较 算法思想:字符集与 1-n 的数值满足双射,字符串转化为n进制数值 优化程度:a. 比较次数:n-m次 ...
分类:
编程语言 时间:
2020-06-25 18:00:36
阅读次数:
68
最大流 Edmond Karp 原版的是用邻接矩阵写的,太耗内存了,这里改成邻接表。 Dinic 玄学的Dinic ...
分类:
其他好文 时间:
2020-05-16 20:38:32
阅读次数:
54
https://www.cnblogs.com/penseur/archive/2013/06/16/3138981.html #include<iostream> #include<queue> using namespace std; const int MAXN=500;// 最大点数 con ...
分类:
编程语言 时间:
2020-04-21 18:19:26
阅读次数:
81
最大流之Edmonds Karp(EK)算法 最大流问题 最大流问题就是一类解决有关于每条边有流量上限的问题。 就好像这样: 图中每条边上的数字叫做这条边的 容量 ,它代表了最多能有多少个物品经过它。 而实际上有多少个物品经过这条边,我们把它称为物品的 流量 。 而起始点A称为 源点 ,终点D称为 ...
分类:
其他好文 时间:
2020-02-09 22:06:50
阅读次数:
73
题意: 给一个字符串 寻找字符串为(a+a)格式的子串有多少。a+a 格式字符串比如 abcabc, ee 等。 首先O(N^2)枚举子串,然后通过哈希在O(1)复杂度判断子串是否符合要求。 RK哈希,Rabin_Karp 哈希,通过比较hash值是否相等来比较每个字符串是否相等。有概率出错(很小) ...
分类:
其他好文 时间:
2020-02-01 23:19:47
阅读次数:
79
转自:https://www.jb51.net/article/148388.htm strings 包中的函数和方法 // Count 计算字符串 sep 在 s 中的非重叠个数 // 如果 sep 为空字符串,则返回 s 中的字符(非字节)个数 + 1 // 使用 Rabin-Karp 算法实现 ...
分类:
其他好文 时间:
2019-12-16 09:46:48
阅读次数:
85
网络流可以解决 二分图最大匹配(网络中的每条边的容量设为1) 多重匹配() 网络流最大流问题的算法 Edmonds karp增广路算法A$O(m^{2}n)$ dinic算法 1.在图上找到一条从源点到汇点的路径(称为‘增广路’)。 2.取增广路上的残量最小值v。(也就是流过的路径中流量最小的那一个 ...
分类:
其他好文 时间:
2019-11-03 20:12:24
阅读次数:
89
strings 包中的函数和方法 // strings.go // Count 计算字符串 sep 在 s 中的非重叠个数// 如果 sep 为空字符串,则返回 s 中的字符(非字节)个数 + 1// 使用 Rabin-Karp 算法实现func Count(s, sep string) int f ...
分类:
其他好文 时间:
2019-10-11 12:50:16
阅读次数:
81
1 //Hopcroft-Karp 算法 时间复杂度为O(n^(1/2)*m) 2 //该算法是对匈牙利算法的优化,利用匈牙利算法一次只能找到一条增广路径, 3 //Hopcroft-Karp就提出一次找到多条不相交的增广路径(不相交就是没有公共点和公共边的增广路径),称为增广路集 4 //然后根据... ...
分类:
编程语言 时间:
2019-09-03 09:15:17
阅读次数:
69
费用流 假设每条边除了有一个容量限制外,还有一个单位流量所需的费用(cost)。该网络中花费最小的最大流称为最小费用最大流,即总流量最大的情况下,总费用最小的流。 和 Edmonds-Karp 算法类似,但每次用 Bellman-Ford 算法而非 BFS 找增广路。只要初始流是该流量下的最小费用可 ...
分类:
其他好文 时间:
2019-07-29 23:01:52
阅读次数:
168