![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
【字符串】Trie/字典树
文章平均质量分 52
【字符串】Trie/字典树
A_zjzj
衢州华茂外国语学校郑钧
展开
-
洛谷 P8420 [THUPC2022 决赛] 匹配 题解--zhengjun
给定 NNN 个长度为 LLL 的 01 匹配串 aaa 和 MMM 长度为 LLL 的 01 禁用串 bbb,要求找到一个不是禁用串的长度为 LLL 的 01 字符串 ccc,使得 ∑i=1N∑j=1L[ai,j≠cj]\sum\limits_{i=1}^N\sum\limits_{j=1}^L{[a_{i,j}\ne c_j]}i=1∑Nj=1∑L[ai,j=cj] 最小,求出这个最小值。这是与官方题解不同的解法,时空复杂度:O((N+M)×L)O((N+M)\times L)O((N+M)原创 2022-06-25 16:12:30 · 556 阅读 · 1 评论 -
P7469 [NOI Online 2021 提高组] 积木小赛 题解--zhengjun
题目概述: 给你两个长度为 nnn 的字符串 a,ba,ba,b,你需要找出 bbb 中有多少个不同的子串是 aaa 的子序列 思路: 可以枚举 aaa 中的子串,可是这样可能会有多个相同的子串被算了多次,那么,我们就可以用 TrieTrieTrie 树,然后从根节点开始向下搜,枚举每一个子串,看一下在 aaa 中有没有。 很显然,如果当前的这个子串已经不匹配了,那么就没有再搜下去的必要。 然后,我们可以用一个 nexi,c=′a′to′z′nex_{i,c='a'to'z'}nexi,c=′a′to′z′原创 2021-03-27 14:31:37 · 561 阅读 · 0 评论 -
POJ3007.Organize Your Train part II题解--zhengjun
思路 首先一看就是统计有多少不同的字符串。 那么肯定就是用字典树了。 然后如果当前字符串与之前的某个字符串是一样的,那么一定会有使得每一次向下一个节点时,这个节点都是存在的。 最后记得清空。 代码 #include<cstdio> #include<cstring> #include<iostream> #include<set> using namespace std;typedef long long ll; struct Precision{int x;原创 2021-11-23 20:37:14 · 201 阅读 · 0 评论