HDOJ 1251 -- 统计难题 Trie
来源:互联网 发布:美工抠图总结 编辑:程序博客网 时间:2024/05/01 18:37
Trie的写法是很灵活的,感觉跟segment tree一样,要活用
/* PROG: 统计难题 ID : LANG: C++ */ #include <string> #include <cstdio> #include <cstdlib> #include <memory.h> #include <iostream> #include <algorithm> using namespace std; struct Trie_Node { int cnt; Trie_Node *branch[27]; Trie_Node():cnt( 0 ) { memset( branch, 0, sizeof(branch) ); }// Init }; class Trie { public: Trie(); void Trie_Insert( char ss[] ); int Trie_Find( char ss[] ); private: Trie_Node *root; }t; Trie::Trie() { root = new Trie_Node(); }// Trie void Trie::Trie_Insert( char ss[] ) { Trie_Node *ptr = root; Trie_Node *temp = NULL; int slen = strlen( ss ); for ( int i=0; i<slen ;++i ) { if ( ptr->branch[ ss[i]-'a' ]==NULL ) { temp = new Trie_Node(); ptr->branch[ ss[i]-'a' ] = temp; } ++( ptr->branch[ ss[i]-'a' ]->cnt ); ptr = ptr->branch[ ss[i]-'a' ]; }// Insert return ; }// Trie_Insert int Trie::Trie_Find( char ss[] ) { int i, slen = strlen( ss ); Trie_Node *ptr = root; for ( i=0; i<slen; ++i ) { ptr = ptr->branch[ ss[i]-'a' ]; if ( ptr==NULL ) break; } if ( i==slen ) return ( ptr->cnt ); else return 0; }// Trie_Find int main() { char vocabu[12]; while ( gets( vocabu ) ) { if ( !strcmp( vocabu, "" ) ) break; t.Trie_Insert( vocabu ); }// creat the trie while ( EOF != scanf("%s", vocabu) ) { printf("%d\n", t.Trie_Find( vocabu )); }// Find the prefix return 0; }
- HDOJ 1251 -- 统计难题 Trie
- HDOJ 1251 统计难题 (trie)
- hdoj--1251 统计难题(Trie树)
- HDOJ-1521统计难题(Trie树)
- HDOJ 1251 统计难题
- 统计难题 HDOJ --1251
- hdoj 1251 统计难题
- Hdoj 1251 统计难题
- hdu 1251统计难题(trie)
- hdu 1251 统计难题 Trie
- hdu 1251 统计难题(trie)
- hdu 1251 统计难题 trie
- HDU-1251 统计难题 (Trie)
- HDOJ 1251 统计难题(j简单的字典树trie的应用)
- ACM HDOJ 1251 (统计难题 )
- Hdoj 1251 统计难题 【Hash】
- hdoj-1251-统计难题【map】
- hdu 1251 统计难题//trie树
- 8051单片机I/O引脚工作原理(P2端口修改指明)
- 数据迁移:RAC 下开启关闭归档
- C语言学习(六)指针1 概念
- GetPrivateProfileInt
- 特创论
- HDOJ 1251 -- 统计难题 Trie
- 超链接的路径中含有中文页面无法访问的问题。
- HDOJ - 4414 (Finding crosses)
- hdu1228
- android:visibility
- form表单字段元素对象实例(一)— —当将焦点切换到密码框时,密码输入框上将发生onFocus事件。
- ZJUT 1204 01串排序
- 有2n个硬币和一个天平,其中有两个假硬币一个质量为m+1,一个质量为m-1,其余质量都为m,用O(logn)的时间复杂度找到这两个假硬币。
- Android布局方式(TableLayout)学习