POJ 2001 字典树裸模版
来源:互联网 发布:土巴兔云设计软件 编辑:程序博客网 时间:2024/05/01 10:02
再做几个字典树就去AC自动机...... 加油!
用模板感觉不错啊!!细节细节!!
#include<iostream>#include<string>#include<cstdio>#define MAX 26using namespace std;struct TireNode{ int nCount; TireNode *next[MAX];};TireNode Memeroy[1111111];int allocp=0;void InitTireRoot( TireNode **pRoot ){ *pRoot=NULL;}TireNode *CreateTire(){ int i,k; TireNode *p=&Memeroy[allocp++]; p->nCount=1; for( i=0;i<MAX;i++ ) p->next[i]=NULL; return p;}void InsertTire( TireNode **Root,char *s ){ int i=0,k; TireNode *p; if( !(p=*Root) ) p=*Root=CreateTire(); while( s[i] ) { k=s[i++]-'a'; if( p->next[k] ) p->next[k]->nCount++; else p->next[k]=CreateTire(); p=p->next[k]; }} void SearchTire( TireNode **Root,char *s ){ int i=0,k; TireNode *p=*Root; while( s[i] ) { printf( "%c",s[i] ); k=s[i++]-'a'; if( p->next[k] && p->next[k]->nCount==1 ) return ; p=p->next[k]; }}int main(){ //freopen( "write.out","w",stdout ); //freopen( "read.in","r",stdin ); TireNode *Root; InitTireRoot(&Root); int k=0; char s[1111][22]; while( scanf("%s",s[k])!=EOF ) InsertTire(&Root,s[k++]); for( int i=0;i<k;i++ ) { printf( "%s ",s[i] ); SearchTire(&Root,s[i]); printf( "\n" ); } return 0;}
- POJ 2001 字典树裸模版
- poj 2001 Shortest Prefixes 字典树(模版题)
- 字典树 模版
- 字典树 基础模版
- 字典树模版
- 字典树模版
- 字典树模版
- 字典树(模版+源码)
- 字典树模版
- 字典树(讲解+模版)
- 字典树 讲解+模版
- HDU1251-字典树模版
- 字典树模版
- 字典树模版
- 《字典树》数组模版
- 字典树模版
- POJ 2001 字典树
- 字典树 poj 2001
- 2012-03-23
- javascript 格式化数字 千分位加逗号小数点
- 关于dword ptr 指令的意思
- 一览画面中js控制弹出悬浮窗口
- 使android桌面图标变大
- POJ 2001 字典树裸模版
- 2012-03-23-1
- 不只是休闲:关于体感游戏的一些思考(六)--- 飞行
- 三表查询、统计
- sqlserver function(函数) 字符串累加
- 微软赵立威:云计算技术是移动互联网开发核心
- SAP-批量修改主数据(客户、供应商、物料)
- 使用DDL,DML语言对数据库进行基本操作。
- 五种WinSock I/O模型的特点及比较