[NOI2000] 单词查找树
2024-08-23 23:27:20
★★ 输入文件: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
最新文章
- PSP(16/03/14-16/03/15)
- 移动app框架inoic功能研究
- windows 7/10下安装oracle 10g
- [Linux] linux awk命令详解
- ASP.NET MVC 3 使用Model自定义验证的样式
- 【转载】在Linux中使用VS Code编译调试C++项目
- 1094. The Largest Generation (25)
- nginx搭建流媒体服务器的方法详解
- 逻辑推理:在一个100条语句的列表中,第n条语句是“在这个列表中,恰有n条语句为假”,可以得出什么结论?
- EXTJS store 某行某列数据更新等操作
- Eclipse console文本换行
- php在.php文件中设置php.ini,仅对当前文件有效
- nginx access log logrotate配置
- ORACLE在表中添加的目光凝视和读取列
- LocalDateTime返回的是Local时间
- Function方法和属性图
- Typescript 基础应用
- 使用secureCRT和Telnet将文件压缩导出到Ubuntu中,到Ubuntu中加压缩发现:tar解压包的时候出现错误gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now
- python小游戏
- HDU5117 Fluorescent 期望 计数 状压dp 动态规划
热门文章
- [App Store Connect帮助]六、测试 Beta 版本(4.1) 管理 Beta 版构建版本:为构建版本添加测试员
- 思维题+set URAL 1718 Rejudge
- Android内存管理(14)*使用开源库LeakCanary检查内存泄漏
- 专题四:自定义Web浏览器
- 防止按钮button重复提交,点击后失效,10秒后恢复
- java项目其他基础配置
- 梦想CAD控件网页版扩展数据
- 洛谷——P2158 [SDOI2008]仪仗队
- 洛谷——P1413 坚果保龄球
- Loading class `com.mysql.jdbc.Driver&#39;. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver&#39;.