洛谷P1481 魔族密码

该博客介绍了一道编程题目,涉及利用Trie树寻找给定单词表中最长的无重复词链,并给出了具体的输入输出格式及解题思路,强调了利用DFS遍历字典树找到单词并计数的方法。
摘要由CSDN通过智能技术生成

大概题意:

在一个给定的单词表中取出一些词,组成最长的词链,就是包含单词数最多的词链。将它的单词数统计出来
输入格式
这些文件的格式是,第一行为单词表中的单词数N(1<=N<=2000),下面每一行有一个单词,按字典顺序排列,中间没有重复的单词
输出格式
输出最长词链的单词数

思路:
既然要找单词的前缀,自然想到利用前缀树–Trie树来做,由于没有重复单词,在字典树中用DFS每找到一个单词,+1即可。
这里作者的代码采用了unordered_map和unorded_set来分别存储下一步存在的字母和到此为止的单词

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#include<set>
#include<unordered_map>
#include<unordered_set>
#include<vector>
using namespace std;
struct trieNode{
   
	unordered_set<char> isWord;
	unordered_map<char, trieNode*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值