2012年8月7日

扩展KMP学习

摘要: 1.扩展KMP要解决的问题 母串S,子串T,n = |S|,m = |T|,extend[i]表示S【i]与T最长公共前缀,要求在线性时间内求出extend[i]2.算法分析1)暴力算法,时间复杂度O( n * n ),比较N次,每次长度从N到1 2)扩展KMP, 时间复杂度O( n + m )扩展KMP:View Code #include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<vector>#include<string& 阅读全文

posted @ 2012-08-07 22:20 more think, more gains 阅读(156) 评论(0) 推荐(0) 编辑

整数因子分解算法

摘要: 奇葩的算法View Code #include<iostream>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cmath>#include<queue>#include<set>#include<map>#include<cstring>#include<vector>#define LL unsigned long longusing namespace std;LL p[10] = { 2,3, 阅读全文

posted @ 2012-08-07 20:28 more think, more gains 阅读(419) 评论(0) 推荐(0) 编辑

找规律 技巧题 快速幂

摘要: 题意:给你个N,统计C(N,0),C(N,1)。。,C(N,N)中奇数的个数算法:统计N中1的个数就可以了,然后快速幂View Code #include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<vector>#include<string>#include<math.h>#include<map>#include<set>#include<algorithm>using n 阅读全文

posted @ 2012-08-07 18:13 more think, more gains 阅读(194) 评论(0) 推荐(0) 编辑

History repeat itself 统计非平方数

摘要: 题意:从1到。。。INF,统计第N个不能开平方数,并求其和。。算法:技巧题:View Code #include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<vector>#include<string>#include<math.h>#include<map>#include<set>#include<algorithm>using namespace std;int T;lo 阅读全文

posted @ 2012-08-07 18:10 more think, more gains 阅读(161) 评论(0) 推荐(0) 编辑

Gold miner 分组背包

摘要: 题意:要求在T时间内取N件物品,每种物品有其时间价值。同一条线上的必须依次取。算法:刚开始用树形DP做,也就是依赖背包。。TLE。而且跟据题目要求,必须节点取了,其子节点才能取。除了TLE,我的限定条件感觉对错也没有太大把握,做题时一定要正确选择算法,分析算法可行性(正确性,时间上,内存上),不要浪费时间。超时的树形DP:View Code #include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<vector>#include< 阅读全文

posted @ 2012-08-07 18:06 more think, more gains 阅读(240) 评论(0) 推荐(0) 编辑

导航