博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 3518
阅读量:5084 次
发布时间:2019-06-13

本文共 1265 字,大约阅读时间需要 4 分钟。

trie

View Code
1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 const int MAX=1001; 8 char s[MAX]; 9 int sz,len;10 int trie[MAX*MAX][26];11 int minp[MAX*MAX],maxp[MAX*MAX],dep[MAX*MAX];12 void insert_trie(char *str,int d)13 {14 int rt=0;15 for (int i=0;str[i];i++)16 {17 int t=str[i]-'a';18 if (!trie[rt][t]){19 trie[rt][t]=++sz;20 memset(trie[sz],0,sizeof(trie[sz]));21 minp[sz]=MAX;maxp[sz]=0;22 dep[sz]=i+1;23 }24 rt=trie[rt][t];25 if (i+d>maxp[rt]) maxp[rt]=i+d;26 if (i+d
len) return;28 29 }30 }31 int cnt;32 void find_trie(int rt)33 {34 35 for (int i=0;i<26;i++){36 if (trie[rt][i]){37 int t=trie[rt][i];38 if (minp[t]+dep[t]<=maxp[t]) {39 cnt++;40 find_trie(t);41 }42 43 44 }45 }46 }47 int main()48 {49 freopen("C:\in.txt","r",stdin);50 while (gets(s))51 {52 if (s[0]=='#') break;53 char *str=s;54 len=strlen(s);55 memset(trie[0],0,sizeof(trie[0]));56 sz=0;57 for (int i=0;s[i];i++)58 {59 insert_trie(str,i);60 str++;61 }62 cnt=0;63 find_trie(0);64 printf("%d\n",cnt);65 } 66 67 return 0;68 }

 

转载于:https://www.cnblogs.com/Rlemon/archive/2012/05/16/2504284.html

你可能感兴趣的文章
数据中心虚拟化技术
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>