hdu 3336 Count the string(记忆化搜索)
2013-10-01 16:20
323 查看
第一次查找第一个字符在串中出现的次数和位置,在第二次查找前两个字符构成的前缀的时候就不用再去逐个查找,只需要去比较第一次记录的每一个下标后面的字符,这样就可以大大减少比较的次数。不过这样写有一个缺陷,就是对于一个由同一个字符构成的字符串,比较的效率会很低。
之前用这种方法做过几道处理字符串的题目,一直觉得特别好用。不过直到现在才知道,这种方法叫做记忆化搜索。
之前用这种方法做过几道处理字符串的题目,一直觉得特别好用。不过直到现在才知道,这种方法叫做记忆化搜索。
#include<stdio.h> #include<string.h> #define N 200005 int hash ; char s ; int main() { int T; scanf("%d",&T); while(T--) { int ln; scanf("%d",&ln); getchar(); gets(s); int i,j,k,l; __int64 sum; sum=0;l=ln; for(i=0;i<ln;i++) hash[i]=i; for(i=0;i<ln;i++) { k=l;l=0; for(j=0;j<k;j++) { if(s[i]==s[hash[j]]) { hash[l++]=hash[j]+1; sum++; } } if(l==0) break; } printf("%I64d\n",sum%10007); } return 0; }
相关文章推荐
- HDU 3336 Count the string(KMP)||记忆化搜索
- HDU 3336 Count the string (记忆化搜索)
- HDU 3336 Count the string (记忆化搜索)
- HDU - 3336 Count the string
- hdu 3336:Count the string(数据结构,串,KMP算法)
- [HDU 3336]Count the String[kmp]
- HDU 3336 Count the string
- Count the string HDU - 3336 KMP+DP
- HDU 3336 Count the string(kmp)
- hdu 3336 Count the string(KMP)
- [HDU 3336]Count the String[kmp][DP]
- hdu 3336 Count the string
- HDU 3336 Count the string kmp+dp
- hdu 3336 count the string
- hdu 3336 Count the string kmp
- HDU:3336-Count the string(next数组理解)
- Hdu 3336 Count the String(DP+KMP)(好题)
- hdu 3336 Count the string
- HDU--杭电--3336--Count the string--KMP--说是KMP,实际我是用的滑动取值,别人教的
- hdu 3336 Count the string(扩展KMP模板)