hdu 1251 统计难题(字典树)
2013-11-24 10:56
435 查看
题目链接:hdu 1251
解法:构造一个字典树,根据给出模式串统计字典树上的结点分别被多少个单词覆盖到,统计到的某结点的ch值便是以该结点结尾的字符串为前缀的单词个数。
代码如下:
解法:构造一个字典树,根据给出模式串统计字典树上的结点分别被多少个单词覆盖到,统计到的某结点的ch值便是以该结点结尾的字符串为前缀的单词个数。
代码如下:
#include <cstdio> #include <cstring> struct trie { trie *next[26]; // 假设只有26个小写字母 int ch; // 统计有多少个单词覆盖到当前结点 trie() { // 用于初始化的构造函数 memset(next, 0, sizeof(next)); ch = 1; } } *root; void insert(char *s) { trie *p = root; while(*s) { int index = *s - 'a'; if(p->next[index]) p->next[index]->ch++; else p->next[index] = new trie; p = p->next[index]; s++; } } int search(char *s) { trie *p = root; while(*s) { int index = *s - 'a'; if(!p->next[index]) return 0; p = p->next[index]; s++; } return p->ch; } int main() { root = new trie; char s[15]; while(gets(s), s[0] != '\0') insert(s); while(gets(s)) printf("%d\n", search(s)); return 0; }
相关文章推荐
- HDU 1251:统计难题【字典树 & string+map】
- hdu 1251 统计难题(字典树)
- HDOJ/HDU 1251 统计难题(字典树啥的~Map水过)
- hdu 1251 统计难题 字典树裸题
- hdu1251 统计难题 (字典树查找)
- hdu 1251 统计难题 (字典树)
- hdu1251 统计难题 字典树
- [HDU 1251] 统计难题(字典树)
- HDU-1251 统计难题(字典树+map)
- HDU 1251 统计难题 字典树
- HDU 1251 统计难题 字典树
- hdu 1251 统计难题 (字典树)
- 字典树 统计难题HDU 1251
- HDU 1251 统计难题 字典树入门(Trie)
- hdu 1251 统计难题 字典树解释 +字典树模板
- HDOJ/HDU 1251 统计难题(字典树啥的~Map水过)
- hdu 1251 统计难题 字典树入门
- hdu 1251 统计难题 字典树
- HDU 1251 统计难题 字典树
- hdu 1251 统计难题(字典树)