摘要: kmp含义 克努斯-莫里斯-普拉特算法,一种字符串查找算法。 字符串算法主要是用于主串 S( s1,s2,s3,...,sn ), 模式串T( t1,t2,...,tm ), 之间的匹配问题. 相对与模式匹配O(n^2)而言:当 Si != Tj 失配时, 主串下标i不回溯, 而是将模式串下标j回溯到合适的地方,再继续比较 Tj ,Si.时间复杂度极端情况是 O(N*M), 但是一般情况下总能保证O(N+M). 假定串 S( i-j+1, i ) 与 模式串 T( 1, j ) 匹配时, Si != Tj 不匹配,此时需j最短回溯到 k, 则存在 T(1,k-1) = T( j-k... 阅读全文
posted @ 2013-04-28 20:41 yefeng1627 阅读(1225) 评论(0) 推荐(0) 编辑
摘要: 虽然题目只给了起点st,和终点ed, st,ed <= 10000.但是只有200条边,极端情况也才200条边对应的400个顶点都不一样.所以我们可以离散化顶点到[1,400]之间.然后跑个最大流即可.注意本题边是单向的.View Code #include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<map>using namespace std;const int inf = 0x3f3f3f3f;const int MAXN = 1 阅读全文
posted @ 2013-04-28 19:08 yefeng1627 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一个数字x, x<=1e18, 求其分解成数个fib数相加的方案总数.其中fib数不能重复.解题思路: 首先一个结论: 任意一个数,都能被分解成 数个fib数相加的形式. 另外, 在区间 [1,1e18]总共有 88个fib数. 对于一个数 x, 我们用一个长度为88的01序列来唯一表示.当前位为1则表示取,否则不取 例如 8: 00000100...0 2: 00100...0 3: 0110...0 从高位到低位. 根据 fib_i = fib_i-1 + fib_i-2 . 对于一个序列 001, 其能够被 110 替换. 我们可以总结出. 当前位为... 阅读全文
posted @ 2013-04-28 18:56 yefeng1627 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题意: 有N(n<=1000)个数 a1,a2,..,an, ai <= 10^15, 取其中部分组合相乘的到数是一个完全平方数.求方案总数.其中保证 ai 不包含大于500的质因子.解题思路: 解决本题需要有,线性代数基础. 涉及到关于矩阵的初等变换与高斯消元.求解齐次方程. 首先考虑,一个数 x = p1^e1 * p2^e2 * ... * pn^en 若其是一个完全平方数,则 所有的 ei % 2 == 0 . 另外. 取部分数相乘. 例如三个数 ai*aj*ak = x ,此时我们只关心的是其对应的质因子的幂皆为偶数. 所以对于 ai = p1^e1 * p2^e2 * 阅读全文
posted @ 2013-04-28 17:08 yefeng1627 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 解题思路: 首先考虑题目数据大小范围, 总共9个不同数字的全排列, 9! = 3*10^5 假设N = 9!, 意味着,拼图的状态有N种, 将其看成顶点.[1,N] 则因为每次只能够移动0, 且每次只能向四个方向移动,则意味着每个顶点至多有四条边.且每条边的长度为1. 假定序列 (876543210) 目标序列, 其编号为 st, 则我们可以通过求 单源点的最短路. 求出从st出发到其他顶点v的最短距离 dis[v]. 那么对于T次询问操作. 我们只需要O(1)的时间 输出dis[v]就可以了. 另外还有个问题就是. 对于 (0,1,..,8)的全排列,如何唯一编号.这里就用到... 阅读全文
posted @ 2013-04-28 16:27 yefeng1627 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题意: 两个都含有N个元素的数组a,b, 求 a[i]+b[j] ( i , j < N ) 的前 M个最小值(M < N)解题思路: 假定a,b数组都有序,则我们有下面的结论: a_1 + b_1 <= a_1 + b_2 <= ... <= a_1 + b_n a_2 + b_1 <= a_2 + b_2 <= ... <= a_2 + b_n ... a_n + b_1 <= a_n + b_2 <= ... <= a_n + b_n 那么我们就可以得出一个 N*N 的矩阵.如下形式 A(1,1), A(1,2), ... 阅读全文
posted @ 2013-04-28 16:10 yefeng1627 阅读(146) 评论(0) 推荐(0) 编辑

Launch CodeCogs Equation Editor