★★   输入文件:trie.in   输出文件:trie.out   简单对比 时间限制:1 s   内存限制:128 MB

在进行文法分析的时候,通常需要检测一个单词是否在我们的单词列表里。为了提高查找和定位的速度,通常都要画出与单词列表所对应的单词查找树,其特点如下:

  • 根节点不包含字母,除根节点外每一个节点都仅包含一个大写英文字母;
  • 从根节点到某一节点,路径上经过的字母依次连起来所构成的字母序列,称为该节点对应的单词。单词列表中的每个词,都是该单词查找树某个节点所对应的单词;
  • 在满足上述条件下,该单词查找树的节点数最少。

单词列表对应的单词查找树

A
AN
ASP
AS
ASC
ASCII
BAS
BASIC

对一个确定的单词列表,请统计对应的单词查找树的节点数(包括根节点)

[输入文件]

该文件为一个单词列表,每一行仅包含一个单词和一个换行/回车符。每个单词仅由大写的英文字符组成,长度不超过63个字符。文件总长度不超过32K,至少有一行数据。

[输出文件]

该文件中仅包含一个整数和一个换行/回车符。该整数为单词列表对应的单词查找树的节点数。

[输入输出文件样例]

Input

A
AN
ASP
AS
ASC
ASCII
BAS
BASIC

Output

13

思路:不完全实现的字典树

代码实现:

 #include<cstdio>
#include<cstring>
int l,s,ws=;
char ch[];
int w[];
void put_k(){
for(int i=,j=;i<l;i++){
s=j+ch[i]-'A';
if(!w[s]) w[s]=ws,ws+=;
j=w[s];
}
}
int main(){
freopen("trie.in","r",stdin);
freopen("trie.out","w",stdout);
while(scanf("%s",ch)!=EOF){
l=strlen(ch);
put_k();
}
printf("%d\n",ws/);
return ;
}

曾几何时,我们的国大还可以这么水。

题目来源:COGS

最新文章

  1. PSP(16/03/14-16/03/15)
  2. 移动app框架inoic功能研究
  3. windows 7/10下安装oracle 10g
  4. [Linux] linux awk命令详解
  5. ASP.NET MVC 3 使用Model自定义验证的样式
  6. 【转载】在Linux中使用VS Code编译调试C++项目
  7. 1094. The Largest Generation (25)
  8. nginx搭建流媒体服务器的方法详解
  9. 逻辑推理:在一个100条语句的列表中,第n条语句是“在这个列表中,恰有n条语句为假”,可以得出什么结论?
  10. EXTJS store 某行某列数据更新等操作
  11. Eclipse console文本换行
  12. php在.php文件中设置php.ini,仅对当前文件有效
  13. nginx access log logrotate配置
  14. ORACLE在表中添加的目光凝视和读取列
  15. LocalDateTime返回的是Local时间
  16. Function方法和属性图
  17. Typescript 基础应用
  18. 使用secureCRT和Telnet将文件压缩导出到Ubuntu中,到Ubuntu中加压缩发现:tar解压包的时候出现错误gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now
  19. python小游戏
  20. HDU5117 Fluorescent 期望 计数 状压dp 动态规划

热门文章

  1. [App Store Connect帮助]六、测试 Beta 版本(4.1) 管理 Beta 版构建版本:为构建版本添加测试员
  2. 思维题+set URAL 1718 Rejudge
  3. Android内存管理(14)*使用开源库LeakCanary检查内存泄漏
  4. 专题四:自定义Web浏览器
  5. 防止按钮button重复提交,点击后失效,10秒后恢复
  6. java项目其他基础配置
  7. 梦想CAD控件网页版扩展数据
  8. 洛谷——P2158 [SDOI2008]仪仗队
  9. 洛谷——P1413 坚果保龄球
  10. Loading class `com.mysql.jdbc.Driver&#39;. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver&#39;.