字符串--字典树
Phoenix丶HN
这个作者很懒,什么都没留下…
展开
-
hdu5732(树哈希+树的重构+树的重心)
题目大意:给定一棵树,这两棵树肯定是同构的。问你,第一棵树的每个节点,可以对应第二个树的那个节点。 显然对应方法不唯一,SPJ来检测结果正确。方法:首先找树的重心, 树的重心最多2个。一个重心的情况很多,两个重心的情况如图:有人说这个图太对称了……那给个不对称的。 这个图很重要……涉及到一些奇怪的情况原创 2017-03-09 21:49:16 · 392 阅读 · 0 评论 -
初试01字典树(求异或问题)
题目链接一般01字典树用来解决区间异或和之类的问题。 异或的性质: 1. 交换律 2. 结合律,即(a^b)^c = a^(b^c)) 3. 自反性,即x^x=0 4. x^0=x 其中运用最多的就是自反性。有上述性质,对于区间异或和要知道如下性质: XOR[l,r] = XOR[1,l-1] ^ XOR[1,r]题意:求n个数中最大异或和值的区间。有多原创 2017-05-23 17:50:57 · 1827 阅读 · 0 评论 -
字典树初级
题目链接题意:给一个字符串,求组成这个字符串的期望最大,字串有自己的权值。题解:考虑动态规划。从一个点出发可以检查后面每一个可能的单词的权值,然后更新它的后继状态。可以用 map 或者 trie 来维护(map 可能需要适当优化,否则很容易超时)。有几个小技巧:最后回溯的时候,只要在每一个走过的地方打一个点,然后从左往右一个一个字符输出,碰到点就输个空格就好了。使用 map 的原创 2017-05-18 19:37:48 · 164 阅读 · 0 评论 -
poj2503 map构建字典树
题解:用map很简单的。只是输入很有问题,用scanf反正我是没写运行成功。于是一个字符一个字符的输入。。#include#include#include#include#includeusing namespace std;map qq;map p;char a[1001],b[1001],c[1001];int main(){ while(1) {原创 2016-05-27 00:49:10 · 337 阅读 · 0 评论