题目来源:Light OJ 1114 Easily Readable 题意:求一个句子有多少种组成方案 仅仅要满足每一个单词的首尾字符一样 中间顺序能够变化 思路:每一个单词除了首尾 中间的字符排序 然后插入字典树 记录每一个单词的数量 输入一个句子 每一个单词也排序之后查找 依据乘法原理 答案就是 ...
分类:
其他好文 时间:
2016-03-31 16:55:12
阅读次数:
153
看到n<=20亿顿时傻眼。。AC自动机上用矩阵乘法优化DP。。。sxbk 建出AC自动机,把非法的节点去掉后求出trie图。。。 然后根据trie图中的转移关系建矩阵。。。。最后跑个快速幂 竟然搞出来了...感人肺腑 脑子各种短路。。先是矩乘打挂,然后是trie图求措TAT。调了一整节晚自修。 1 ...
分类:
其他好文 时间:
2016-03-29 21:29:25
阅读次数:
213
正解是trie树。。。在树上跳来跳去什么的 然而在企鹅qq那题的影响下我写了hash。。。 添加一个字母到一个串,就相当于另一个串删对应位置上的字母。 改变某个位置上的字母,就相当于两个字符串删掉同一个位置上的字母。 所以要记录的东西也不多。。存一下每个串删掉每个位置上的字母后的hash值并排序,然
分类:
Web程序 时间:
2016-03-21 14:00:42
阅读次数:
173
典型的Trie树, 算是复习一下字符串吧, 就是输入有点恶心,代码如下:
分类:
其他好文 时间:
2016-03-17 00:23:34
阅读次数:
192
题意:给定fibonacci数列的前100000项的前n位(n<=40);问你这是fibonacci数列第几项的前缀?如若不在前100000项范围内,输出-1; 思路:直接使用数组模拟加法,再用Trie树插入查找即可;但是一般使用new Trie()的代码都是MLE的。反而我之前写的,直接得到数组大
分类:
其他好文 时间:
2016-03-15 06:15:33
阅读次数:
192
背景 想Kpm当年为了防止别人随便进入他的MC,给他的PC设了各种奇怪的密码和验证问题(不要问我他是怎么设的。。。),于是乎,他现在理所当然地忘记了密码,只能来解答那些神奇的身份验证问题了。。。 描述 Kpm当年设下的问题是这样的: 现在定义这么一个概念,如果字符串s是字
分类:
其他好文 时间:
2016-03-14 01:33:51
阅读次数:
255
http://blog.csdn.net/hguisu/article/details/8131559 http://www.tkl.iis.u-tokyo.ac.jp/~ynaga/cedar/ https://github.com/adamzy/cedar-go
分类:
编程语言 时间:
2016-03-11 18:38:41
阅读次数:
160
最近刷题时连续遇到两道字典树的题目,所以做一下这个数据结构的总结。 首先什么叫做字典树? 叫 是 我 想 看 听 这种树结构并且把文字或者英文放在里面组成的叫做字典树。 那么字典树有什么用呢? 通过几道题目的练习我发现,字典树主要应用在,对于字符串的分级匹配和查询。 比如在我们如果有三句话,1:我是
分类:
其他好文 时间:
2016-03-08 00:24:04
阅读次数:
247
Multi-bit Trie 题意:将长度为n(n <= 64)的序列分成若干段,每段的数字个数不超过20,且每段的内存定义为段首的值乘以2^(段的长度);问这段序列总的内存最小为多少? 思路:区间的最值,区间DP; 枚举长度,在初始化时,将长度和20比较,小于20看成是一段,大于20时,因为不能压
分类:
其他好文 时间:
2016-03-01 23:55:19
阅读次数:
297
首先我们枚举次大值,然后确定以这个数为次大值的最大区间。 这个区间就是左边第二个比它大的数的下标+1,右边第二个比它大的数的下标-1。 难就难在找到这个区间。 我们考虑将数排序,然后从大到小将数原来的下标插入set,此时set里的值都大于等于当前插入的数。 所以利用set找到前驱的前驱,后继的后继,
分类:
其他好文 时间:
2016-02-28 12:18:48
阅读次数:
216