
总结
文章平均质量分 51
Sdywolf
沃是一只蒟蒻
展开
-
KMP算法
字符串比较,是实际应用中比较重要的一个内容,如果单纯的逐位比较,显然是太慢了(当然,朴素的字符串比较算法在平均情况下表现还是很好的)。下面要介绍的是KMP算法。思想KMP算法的思想很简单,它最核心的思想就是当失配时利用当前的信息而不是重新从头比较。考虑A串和B串,要求B在A第一次出现的位置(通常称B串为模式串)。令p[i]表示小于i的最大的x,使得[1,x]=[i-x+1,i](如何求p数组的问题等原创 2017-07-02 21:54:42 · 266 阅读 · 0 评论 -
LCA的tarjan算法--总结
LCA问题,即最近公共祖先问题,有很多种解法,其中比较高效的有在线的转化为ST表的算法、树上倍增算法,和离线的tarjan算法。在线的算法都很简单,这里要讲的是离线的tarjan算法。思想tarjan算法其实也并不难理解,它的主要思想就是利用了DFS的深度优先的顺序,算法的主框架就是一个DFS遍历,同时利用了并查集的快速合并。理解的时候可以对DFS的过程进行拆分,把访问一个节点过程拆分为访问它和退出原创 2017-07-06 22:02:36 · 672 阅读 · 0 评论 -
CDQ分治--模板 BZOJ 3262--陌上花开【三维偏序】
Description有n朵花,每朵花有三个属性:花形(s)、颜色(c)、气味(m),又三个整数表示。现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量。定义一朵花A比另一朵花B要美丽,当且仅当Sa>=Sb,Ca>=Cb,Ma>=Mb。显然,两朵花可能有同样的属性。需要统计出评出每个等级的花的数量。题解这是典型的三维偏序的问题,可以套高级数据结构,当然,更简便的做法是用CDQ分治。什么是C原创 2017-07-16 14:57:20 · 1102 阅读 · 0 评论