2010年7月25日
摘要: 题意: 给你长度n的一组序列a[i] 然后k操作次数 再给你一组字符串 字符串长度不足n的后面补零操作:把字符在i位置的放到a[i]上 如此操作k次方法: 直接模拟肯定TLE     求字符串整体周期T k=k%T k还是很大 超时 求每个字符串的周期 T[i] 然后 k=k%T[i][代码] 阅读全文
posted @ 2010-07-25 21:04 keep going 阅读(291) 评论(0) 推荐(0) 编辑
  2010年7月21日
摘要: [代码] 阅读全文
posted @ 2010-07-21 16:11 keep going 阅读(305) 评论(0) 推荐(0) 编辑
摘要: HDU 1251代码 阅读全文
posted @ 2010-07-21 14:52 keep going 阅读(196) 评论(0) 推荐(0) 编辑
  2010年6月1日
摘要: 主要参考了 .罗穗骞《后缀数组——处理字符串的有力工具》和许智磊的后缀数组,现在能使用罗穗骞的dc3算法和倍增法倍增法模板o(nlgn)view plaincopy to clipboardprint?int wa[maxn],wb[maxn],wv[maxn],ws[maxn]; int cmp(int *r,int a,int b,int l) {return r[a]... 阅读全文
posted @ 2010-06-01 18:27 keep going 阅读(1525) 评论(0) 推荐(0) 编辑
  2010年5月26日
摘要: 第一道LCA [代码] 阅读全文
posted @ 2010-05-26 22:09 keep going 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 最近公共祖先(LCA)问题LCA(T,u,v):在有根树T中,询问一个距离根最远的结点x,使得x同时为结点u、v的祖先LCA问题可以用朴素的DFS方法解决,但是时间复杂度就很高了,这里介绍一种高级一点的解决LCA问题的Tarjan算法。Tarjan算法是由Robert Tarjan在1979年发现的一种高效的离线算法,也就是说,它要首先读入所有的询问(求一次LCA叫做一次询问),然后并不一定按照原... 阅读全文
posted @ 2010-05-26 21:48 keep going 阅读(3988) 评论(1) 推荐(0) 编辑
摘要: LCA是求最近公共祖先问题, tarjan的算法是离线算法,时间复杂度为O(n+Q),n为数据规模,Q为询问个数其中用到并查集。关键是dfs的主循环比较重要。离线算法就是对每个查询,都要求以下,此算法在lrj的黑书中简单提起过,后边还有O(n)-o(1)的算法,正在研究中。。。分类,使每个结点都落到某个类中,到时候只要执行集合查询,就可以知道结点的LCA了。 对于一个结点u,类别有 以u为根的子树... 阅读全文
posted @ 2010-05-26 21:37 keep going 阅读(739) 评论(0) 推荐(0) 编辑
  2010年5月25日
摘要: 题目有N种物品和一个容量为V的背包。第i种物品最多有n[i]件可用,每件费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本算法这题目和完全背包问题很类似。基本的方程只需将完全背包问题的方程略微一改即可,因为对于第i种物品有n[i]+1种策略:取0件,取1件……取n[i]件。令f[i][v]表示前i种物品恰放入... 阅读全文
posted @ 2010-05-25 23:05 keep going 阅读(407) 评论(0) 推荐(0) 编辑
  2010年5月24日
摘要: 2007-07-15 15:48-------------------------------------算法简述-----------------------------------------ST算法O(nlogn)预处理,O(1)的查询指定区间的最值(以最小值为例)基本上是把待求区间[l,r]分为两段长为len的区间左边一段为[l,l+len-1],右边一段为[r-len+1,r]len必须... 阅读全文
posted @ 2010-05-24 23:16 keep going 阅读(1963) 评论(0) 推荐(1) 编辑
摘要: RMQ问题是求给定区间中的最值问题。当然,最简单的算法是O(n)的,但是对于查询次数很多(设置多大100万次),O(n)的算法效率不够。可以用线段树将算法优化到O(logn)(在线段树中保存线段的最值)。不过,Sparse_Table算法才是最好的:它可以在O(nlogn)的预处理以后实现O(1)的查询效率。下面把Sparse Table算法分成预处理和查询两部分来说明(以求最小值为例)。预处理:... 阅读全文
posted @ 2010-05-24 23:14 keep going 阅读(373) 评论(0) 推荐(0) 编辑