网络流の模型总结
摘要:网络流真的是很不错的算法,因为它富有想象力 最小路径覆盖问题 考虑把原问题等价一种网络流的最终态。 假设初始每个点单独为一条路径。考虑合并路径(前提为首尾相接)。路径数为\(n\)减合并次数。 把每个点拆成入点\(x_i\)和出点\(y_i\),把有向边\((u,v)\),连边:\(x_u\)到\(
阅读全文
[学习笔记] k短路
摘要:A* 不会。\(O(nklogk)\) 最短路径树+可并堆+优先队列 首先求所有点到\(T\)的最短路\(dis\),构建出最短路径树。 转化:一条\(S\)到\(T\)的路径可以双射为路径上的非树边序列 正确性: 每条路径唯一对应……(显然) 每个合法序列相邻非树边之间连接的树边顺序唯一,所以也唯
阅读全文
【学习笔记】后缀排序
摘要:算法 顾名思义,就是将后缀按照字典序排序。 考虑倍增的思路,先按长度为\(len\)排序,\(O(n)\)推出长度为\(2*len\)的排序,只需要合并两个长度为\(len\)的字符串。 记\(rk(i)\)表示\(i\)开始往后长度为当前\(len\)的后缀排名,\(SA(i)\)为排第\(i\)
阅读全文