Trie
Trie学习
CCCCDEV_CCCC
志在四方少年,羡慕南飞的雁
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最小表示法
最小表示法 什么是最小表示法,就是说给定一个字符串,每次将字符串的最后一位放在最前面组成新的字符串,叫做循环同构,而这些字符串里面字典序最小的就是最小表示 比如,设s=“abca” 那么他的循环同构字符串有:abca,aabc,caab,bcaa,那么s的最小表示就是aabc 那么我们怎么求呢?最简单的就是朴素算法,按照定义以此比较这个字符串的字典序 那么如何使用最小表示法? 1.初始化i=1,j=2 2.通过扫描的方式比较b[i]与b[j]两个循环同构串 (1)如果扫描了n个字符仍然相等,说明原创 2021-05-03 15:10:26 · 331 阅读 · 0 评论 -
逆序对
逆序对 对于一个序列a,i<j并且a[i]>a[j],那么俩个数就是逆序对。 我们可以使用归并排序进行求出个数,然后进行二分序列,递归左右两半,合并有序序列。 合并两个序列,可以采用两个指针ij分别进行扫描,不断进行比较指针所在的值,然后加入数组。 以下是个人理解 首先我们在函数里面把ij指向两个序列的起始点。 然后我们循环判断这一区间是否存在逆序对,存在的话就将a数组的前半部分存储到b数组里面,否则存储后半部分。 最后还得循环进行代替值。 void nixudui(int l,原创 2021-04-21 21:39:41 · 260 阅读 · 0 评论 -
1908 逆序对
1908 逆序对 首先我们得先明白逆序对的概念,在一个正数序列,如果对于一个数,有 一个比它小的且在它后面的数叫做逆序对,这个题,求逆序对的个数 这里需要归并排序的方法来做 如果我们想将一个序列排成从小到大有序的,那么划分的左右区间也是有序的,我们只需要统计右边区间每一个数分别会与左边区间产生多少逆序对就好了 并不难理解 这个题的树状数组才是难点,只不过现在还不能做 #include<iostream> #include<cstdio> #include<algorithm&g原创 2021-08-07 12:12:50 · 117 阅读 · 0 评论 -
Trie
Trie 一、引入 这些都是官方话,字典树其实是干嘛的?就好比字典是干啥的,是用来查汉字的(打人用的 )那么字典树就是用来查单词的,也就是用来查询字符串的 我这里要抱怨一下,洛谷没有模板题 我们先看一道题: 给定n个单词m个询问,每次询问一个前缀,问答这个询问是对少单词的询问 答:map!把每个单词拆开 emmmmmmm 听取TLE声一片 这就需要一种高级数据结构了——Trie 原理 这就是Trie的画法 这里可以看出: 1.Trie用边表示字母 2.根节点是空的,因为便于插入查找 3.每一个单词结束之后原创 2021-05-03 16:25:32 · 110 阅读 · 0 评论 -
5149 会议座位
5149 会议座位 貌似这个题用trie加上树状数组来解决? 貌似这个题就是求一个逆序对? 用归并排序求逆序对不是更简单的吗 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define ll long long #define rgi register int #define maxn 100005 #define N 500005 using names原创 2021-08-19 21:41:37 · 121 阅读 · 0 评论 -
2580 于是他错误的点名开始了
2580 于是他错误的点名开始了 从很早我就遇见过这个题,因为他的名字,真的很好玩 字典树又叫做前缀树,就和KMP的next很像对吧 字典树的根节点 是空的;除了根节点,每个节点只存储一个字母;每一个叶子结点会被多次使用,来节省时间效率 所以,字典树就是一个典型的空间换时间的做法 每一个点都会存一个数字 这个数字是干啥的 ...原创 2021-08-19 21:11:44 · 113 阅读 · 0 评论 -
1474 Immediate Decodability
1474 Immediate Decodability 给定一个若干个数字串,判断是否有一个串是另一个串的前缀 emmmmm 看第一眼,并没有任何思路,不过让我庆幸的是,输出的不是答案,而是判断,其实是和二分答案二分查找的性质差不多 说起Trie,我非常喜欢cwk的笑话 什么是Trie树,Trie树就是将树踹一下 by cwk 哈哈哈哈哈哈,很好笑对不对 而且这个还有一个水的地方,就是数字串只有0和1 #include<iostream> #include<cstdio> #in原创 2021-08-19 17:36:16 · 269 阅读 · 0 评论 -
1472 The XOR Largest Pair
1472 The XOR Largest Pair 嗯?ybt这么毒瘤了?例2我就蒙了? 话说这个题感觉是个线段树或者树状数组的题,为什么,感觉这么变态呢,似乎和trie没啥关系 这里Trie的关系就在于把每一个数建立在字典树上,然后进行求异或值,最后比较最大值输出即可,倒是不难理解 这里涉及到一个知识点x>>i表示进行往下搜索一个点 ...原创 2021-08-19 17:04:10 · 232 阅读 · 0 评论 -
1471 phone list
1471 phone list 很显然,这是一个trie的模板题,可惜,我一点思路都没有 算是很模板的题目了 就是在建树的时候需要进行一个小小的常识,这些小常识我们必须在纸上推出来 如果我们发现当前的节点没有,需要在 trie上重新建一个点的话,那么肯定没有 #include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<cstring> using原创 2021-08-19 16:26:58 · 219 阅读 · 0 评论
分享