POJ 3007 Organize Your Train part II(Trie树)
2013-02-18 20:41
357 查看
题目链接
注意不要用memset,手写初始化。 直接map TLE,然后哈希字符串同样TLE了。。换了方法终于水过去了。
注意不要用memset,手写初始化。 直接map TLE,然后哈希字符串同样TLE了。。换了方法终于水过去了。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <map> #include <string> #include <vector> using namespace std; int len; int trie[100001][26]; int ans,tt; char s[101]; void cat(char *s1,char *s2,int n) { int i,num,z; num = 0; for(i = 0; i <= n; i ++) { if(!trie[num][s1[i]-'a']) { ans ++; trie[num][s1[i]-'a'] = ans; num = ans; } else { num = trie[num][s1[i]-'a']; } } for(i = n+1; i < len; i ++) { if(!trie[num][s2[i-n-1]-'a']) { ans ++; trie[num][s2[i-n-1]-'a'] = ans; num = ans; z = 0; } else { num = trie[num][s2[i-n-1]-'a']; z = 1; } } if(z == 0) { tt ++; } } int main() { int t,i,j,k; char str[101]; char s1[101],s2[101],s3[101],s4[101]; scanf("%d",&t); while(t--) { for(i = 0;i <= ans;i ++) { for(j = 0;j <= 25;j ++) trie[i][j] = 0; } tt = ans = 0; scanf("%s",str); len = strlen(str); if(len == 1) { printf("1\n"); continue; } for(i = 0; i < len-1; i ++) { for(j = 0; j <= i; j ++) { s1[j] = str[j]; s2[i-j] = str[j]; } s1[i+1] = '\0'; s2[i+1] = '\0'; for(j = i+1; j < len; j ++) { s3[j-i-1] = str[j]; } for(j = len-1,k = 0; j >= i+1; j --,k ++) { s4[k] = str[j]; } s3[len-i-1] = '\0'; s4[len-i-1] = '\0'; cat(s1,s3,i); cat(s1,s4,i); cat(s2,s3,i); cat(s2,s4,i); cat(s3,s1,len-i-2); cat(s3,s2,len-i-2); cat(s4,s1,len-i-2); cat(s4,s2,len-i-2); } printf("%d\n",tt); } return 0; }
相关文章推荐
- POJ 3007-Organize Your Train part II(hash-字符串)
- Organize Your Train part II_POJ_3007
- poj 3007 Organize Your Train part II 哈希判重
- poj 3007 Organize Your Train part II
- POJ Organize Your Train part II 3007
- poj-3007 Organize Your Train part II
- poj 3007 Organize Your Train part II
- POJ 3007:Organize Your Train part II
- POJ 3007 Organize Your Train part II(枚举)
- POJ 3007:Organize Your Train part II
- [POJ 3007]Organize Your Train part II[Hash][Trie]
- POJ 3007.Organize Your Train part II
- poj 3007 Organize Your Train part II
- POJ 3007 Organize Your Train part II
- POJ 3007 Organize Your Train part II
- POJ 3007 - Organize Your Train part II
- POJ 3007 Organize Your Train part II
- POJ 3007 Organize Your Train part II
- Organize Your Train part II POJ 3007 (哈希&链式解决冲突)
- Organize Your Train part II【POJ--3007】【平衡二叉树】