hdu2072 单词数 字典树

字典树裸题

 1 #include<stdio.h>
 2 #include<string.h>
 3 int next[5000][26];
 4 bool is_e[5000];
 5 int cnt;
 6 int ans;
 7
 8 void Insert(char *word,int s1){
 9     int root=0;
10     for(int i=0;i<s1;i++){
11         if(next[root][word[i]-‘a‘]<0){
12             next[root][word[i]-‘a‘]=++cnt;
13             memset(next[cnt],-1,sizeof(next[cnt]));
14         }
15         root=next[root][word[i]-‘a‘];
16     }
17     if(is_e[root]!=true&&root!=0){
18         ans++;
19         is_e[root]=true;
20     }
21 }
22
23 int main(){
24     char word[500];
25     while(1){
26
27         int s1=0;
28         ans=0;
29         cnt=0;
30         memset(is_e,false,sizeof(is_e));
31         memset(next[0],-1,sizeof(next[0]));
32         gets(word);
33         if(word[0]==‘#‘)return 0;
34         int l=strlen(word);
35         char *p=word;
36         for(int i=0;i<l;i++){
37             if(word[i]!=‘ ‘){
38                 s1++;
39             }
40             else{
41                 Insert(p,s1);
42                 s1=0;
43                 p=(word+i+1);
44             }
45         }
46         Insert(p,s1);
47         printf("%d\n",ans);
48     }
49 }

时间: 2024-12-14 12:48:02

hdu2072 单词数 字典树的相关文章

HDU2072 单词数 【STL】+【strtok】

单词数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 28045    Accepted Submission(s): 6644 Problem Description lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Inp

hdu1247Hat’s Words (组合单词,字典树+DFS)

Problem Description A hat's word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary. You are to find all the hat's words in a dictionary. Input Standard input consists of a number of lowercase words, on

LintCode 单词搜索Ⅱ 字典树

今天做了道有意思的题目,题目要解出来不难,但看到他的提示 发现这道题我一开始并没有用到字典树 然后就使用字典树+DFS写了一遍,也算是巩固下字典树的相关知识 题目:原题地址 给出一个由小写字母组成的矩阵和一个字典.找出所有同时在字典和矩阵中出现的单词.一个单词可以从矩阵中的任意位置开始,可以向左/右/上/下四个相邻方向移动. 样例 给出矩阵: doafagaidcan 和字典: {"dog", "dad", "dgdg", "can&q

hdu 1247:Hat’s Words(字典树,经典题)

Hat's Words Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7282    Accepted Submission(s): 2639 Problem Description A hat's word is a word in the dictionary that is the concatenation of exactly

ZOJ 3674 Search in the Wiki(字典树 + map + vector)

题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4917 题意:每个单词都一些tips单词.先输入n个单词和他们的tips.然后m组查询,每次查询一些单词,按字典序输出这些单词的公有tips.(每个单词都都只包含小写大写字母) 思路:对第i个单词,用vector数组g,g[i]来存这个单词的所有tips.对于所有单词建立字典树,在单词的结尾结点存好该单词的tips在g数组中存的一维下标i.最后用map来计数每组询问中

hdu1247 Hat’s Words 字典树

Problem Description A hat's word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary. You are to find all the hat's words in a dictionary. Input Standard input consists of a number of lowercase words, on

Word Puzzles(字典树)

Description Word puzzles are usually simple and very entertaining for all ages. They are so entertaining that Pizza-Hut company started using table covers with word puzzles printed on them, possibly with the intent to minimise their client's percepti

跳跃表,字典树(单词查找树,Trie树),后缀树,KMP算法,AC 自动机相关算法原理详细汇总

第一部分:跳跃表 本文将总结一种数据结构:跳跃表.前半部分跳跃表性质和操作的介绍直接摘自<让算法的效率跳起来--浅谈"跳跃表"的相关操作及其应用>上海市华东师范大学第二附属中学 魏冉.之后将附上跳跃表的源代码,以及本人对其的了解.难免有错误之处,希望指正,共同进步.谢谢. 跳跃表(Skip List)是1987年才诞生的一种崭新的数据结构,它在进行查找.插入.删除等操作时的期望时间复杂度均为O(logn),有着近乎替代平衡树的本领.而且最重要的一点,就是它的编程复杂度较同类

【oiClass1502】查单词(Trie字典树)

题目描述 全国英语四级考试就这样如期来了,可是小y依然没有做好充分准备.为了能够大学毕业,可怜的小y决定作弊.小y费尽心机,在考试的时候夹带了一本字典进考场,但是现在的问题是,考试的时候可能有很多的单词要查,小y能不能来得及呢? 输入 第一行一个整数N,表示字典中一共有多少个单词(N<=10000).接下来每两行表示一个单词,其中:第一行是一个长度<=100的字符串,表示这个单词,全部小写字母,单词不会重复.第二行是一个整数,表示这个单词在字典中的页码.接下来是一个整数M,表示要查的单词数(M