2010年5月24日
摘要: 首先请看定义:一、最近公共祖先(Least Common Ancestors) 对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。另一种理解方式是把T理解为一个无向无环图,而LCA(T,u,v)即u到v的最短路上深度最小的点。 这里给出一个LCA的例子: 例一 对于T=<V,E> V={1,2,3,4,5} E={(1... 阅读全文
posted @ 2010-05-24 23:11 keep going 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 后缀数组就是将字符串所有后缀排序后的数组,设字符串为S,令后缀Suffix(i)表示S[i..len(S)]。用两个数组记录所有后缀的排序结果:Rank[i]记录Suffix(i)排序后的序号,即Suffix[i]在所有后缀中是第Rank[i]小的后缀SA[i]记录第i位后缀的首字母位置,即Suffix[SA[i]]在所有后缀中是第i小的后缀然后就是怎么快速求所有后缀的顺序了,其中的关键是如何减少... 阅读全文
posted @ 2010-05-24 22:32 keep going 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 2009-10-25 09:05后缀数组是处理字符串的有力工具,后缀数组可以解决大多数后缀树解决的问题,由于它的实现要比后缀树简单,因此深受广大ACM爱好者的喜爱,当然还是有一些问题只有后缀树能解决的问题,等学习了后缀树再将其添上。后缀数组最常用的是求取最长公共前缀。后缀suffix数组,suffix【i】表示从第i个字符开始的后缀;后缀数组sa,保留1~n的某个排列,保证suffix【sa【i】... 阅读全文
posted @ 2010-05-24 22:31 keep going 阅读(518) 评论(0) 推荐(1) 编辑
摘要: 字符串最小表示:[代码] 阅读全文
posted @ 2010-05-24 19:55 keep going 阅读(196) 评论(0) 推荐(0) 编辑
  2010年5月23日
摘要: [代码] 阅读全文
posted @ 2010-05-23 23:32 keep going 阅读(355) 评论(0) 推荐(1) 编辑
摘要: 求字符串的循环最小表示: 上面说的两个字符串同构的,并没有直接先求出Min(s),而是通过指针移动,当某次匹配串长时,那个位置就是Min(s)。而这里的问题就是:不是给定两个串,而是给出一个串,求它的Min(s),eg:Min(“babba”) = 4。那么由于这里并非要求两个串的同构,而是直接求它的最小表示,由于源串和目标串相同,所以处理起来既容易又需要有一些变化:我们仍... 阅读全文
posted @ 2010-05-23 23:30 keep going 阅读(2626) 评论(0) 推荐(4) 编辑
  2010年5月21日
摘要: 最小费用最大流问题 一、定义与定理最小费用最大流:设G是以s为源t为汇的网络,c是G的容量,b是G的单位流量费用,且有b[i][j] = -b[i][j],f是G的流,则b(f)=∑(fij*bij),(i, j)∈E(G) 且fij>0。最小费用最大流问题,就是求网络G的最大流f且使费用b(f)最小。这样的流称为最小费用最大流。二、算法思想用Ford-Fulkerson算... 阅读全文
posted @ 2010-05-21 19:36 keep going 阅读(536) 评论(0) 推荐(0) 编辑
  2010年5月19日
摘要: 二分答案 有点类似与 2112[代码] 阅读全文
posted @ 2010-05-19 23:42 keep going 阅读(334) 评论(0) 推荐(1) 编辑
摘要: [代码] 阅读全文
posted @ 2010-05-19 23:07 keep going 阅读(308) 评论(0) 推荐(1) 编辑
摘要: 最大流POJ 1273 Drainage DitchesPOJ 1274 The Perfect Stall (二分图匹配)POJ 1698 Alice's ChancePOJ 1459 Power NetworkPOJ 2112 Optimal Milking (二分)POJ 2455 Secret Milking Machine (二分)POJ 3189 Steady Cow Assignme... 阅读全文
posted @ 2010-05-19 20:17 keep going 阅读(2725) 评论(0) 推荐(3) 编辑