摘要: http://www.matrix67.com/blog/archives/115求next函数模板:void GetNext(char *s){ int len = strlen(s); int i,j; i = 0; j = -1;//j从0开始,i从1开始 next[0] = -1; for (i = 1; i < len; ++i) { while (j > -1 && s[j + 1] != s[i])//不相同的话j就跳跃知道相同或者成为-1 j = next[j]; if (s[j + 1] == s[... 阅读全文
posted @ 2012-08-03 16:15 E_star 阅读(243) 评论(0) 推荐(0) 编辑
摘要: pku 1961http://poj.org/problem?id=1961题意:给定一个长度为n的字符串,求他的前缀且前缀满足本身为周期字符串。例:aabaabaab 长度为9 周期为3思路:kmp几乎忘干净了,开始学的时候也没有真正的理解,今天看了好长时间的getnext函数;我们在对字符串本身处理得到next函数时,next[i]记录的就是s[1,next[i]] 与s[i - next[i] + 1,i]相同时的值,这里next[i]也表示了相同区间的长度,我们的坐标从0开始则只要(i + 1)%(i - next[i]) == 0就能满足该字符串前缀是周期字符串,i+1表示的是当前枚 阅读全文
posted @ 2012-08-03 16:06 E_star 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 1004 hdu 4334http://acm.hdu.edu.cn/showproblem.php?pid=4334题意:给定五个集合,从五个集合中分别取出5个数,如果存在满足a1 + a2 + a3 + a4 +a5 == 0 输出yes,否则no; 集合的大小小于200 ai的取值为[-10^15, 1 0^15]思路:开始的时候O(n^2)求出前两个集合的所有可能的和,然后O(n^3)+二分log(10^4)做,结果竟然tle。。坑爹啊。。。。最后用了hash过的。好像poj有个类似的题目,也是hash做的。hash开散列两种实现方式,挂链:View Code #include < 阅读全文
posted @ 2012-08-03 13:40 E_star 阅读(328) 评论(2) 推荐(0) 编辑
摘要: 欧拉函数:定义:用于计算 p(n),比n小的所有与n互质的数。计算公式:p(n)=n*(1-1/p1)*(1-1/p2)....*(1-1/pk)【p1,p2,pk都是n的素因子】另:若n=p1^q1*p2^q2*.....*pk^qk则,p(n)=(p1-1)*p1^(q1-1)*(p1-1)*p2^(q2-1)......*(pk-1)*pk^(qk-1)性质:若m,n互质,φ(mn)=φ(m)φ(n)。当n为奇数时,φ(2n)=φ(n)欧拉定理:a,m互质,a^φ(m)≡1(mod m)例:2,3互质,那么,2^2%3=1推论:对于互质的数a、n,满足a^(φ(n)+1) ≡ a (mo 阅读全文
posted @ 2012-08-03 09:31 E_star 阅读(1071) 评论(0) 推荐(0) 编辑
摘要: 欧拉函数:定义:用于计算 p(n),比n小的所有与n互质的数。计算公式:p(n)=n*(1-1/p1)*(1-1/p2)....*(1-1/pk)【p1,p2,pk都是n的素因子】另:若n=p1^q1*p2^q2*.....*pk^qk则,p(n)=(p1-1)*p1^(q1-1)*(p1-1)*p2^(q2-1)......*(pk-1)*pk^(qk-1)性质:若m,n互质,φ(mn)=φ(m)φ(n)。当n为奇数时,φ(2n)=φ(n)欧拉定理:a,m互质,a^φ(m)≡1(mod m)例:2,3互质,那么,2^2%3=1推论:对于互质的数a、n,满足a^(φ(n)+1) ≡ a (mo 阅读全文
posted @ 2012-08-03 08:36 E_star 阅读(394) 评论(0) 推荐(0) 编辑