给n个数
求异或前缀(从前连续取一些数全作异或)和异或后缀(从后连续取一些数全作异或)异或的最大值
好坑啊,指针好坑啊
第一道trie树
简单说下解法(其实壳还是不深):
先异或所有数作为初始后缀
然后从前往后的数逐个从后缀出来,进入前缀,
在这个过程中,都把当前前缀变成二进制压入trie,然后当前后缀变成二进制从高位到低位尽量取和它数位不同的值,沿着trie往下走,得到一个最好...
分类:
其他好文 时间:
2014-09-09 13:11:40
阅读次数:
278
题目大意:
给出一串数,pre[i](前i个数的异或)为a[0]~a[i-1]的异或,post[i](后缀的异或)为a[i]~a[n-1]的异或,求pre[i]^post[j]的最大值(0
做法:
利用trie树将后缀或者前缀存储起来,首先从pre[n]开始,往前遍历,对于每个前缀,将此时的后缀添加到trie树中,再在trie中寻找与当前前缀异或之后能得到最大的值。
在trie...
分类:
其他好文 时间:
2014-09-09 13:10:18
阅读次数:
228
常见问题:①Top K问题:分治+Trie树/Hash_map+小顶堆。采用Hash(x)%M将原文件分割成小文件,如果小文件太大则继续Hash分割,直至可以放入内存。②重复问题:BitMap位图 或 Bloom Filter布隆过滤器 或 Hash_set集合。每个元素对应一个bit处理。③排序问...
分类:
其他好文 时间:
2014-09-09 11:27:08
阅读次数:
272
简要说明一下:主要实现了两个操作,get,setget用来查找字符串键值对应的value,set则用来向字典树添加key-value对。这个实现参考自Algorithms 4th Edition, Robert Sedgewickconst int inf = -(1 next[key[d]], k...
分类:
编程语言 时间:
2014-09-09 11:03:08
阅读次数:
218
题目链接:uva 1385 - Billing Tables
题目大意:给定n个电话前缀,每个前缀是一个区域的前缀,现在要生成一个新的电话单,即对于每个电话号码,从旧的电话单上从前向后遍历,如果出现前缀匹配,则该电话号码对应的即为当前的区号,要求生成的新电话单尽量小。
解题思路:用dfs建立字典树,在区间范围内的点对应均为对应的区号,注意如果70、71、72、...79都为SB的话,那...
分类:
其他好文 时间:
2014-09-05 23:54:42
阅读次数:
417
//那个单词是有出现的两个单词构成的
# include
# include
# include
# include
# define MAX 26
using namespace std;
typedef struct Trie_Node
{
bool isWord;
struct Trie_Node *next[MAX];
} Trie;
char s[50000][5...
分类:
其他好文 时间:
2014-09-05 19:57:51
阅读次数:
207
poj1056 & hdu1305 & zoj1808 Immediate Decodability(字典树变形)...
分类:
其他好文 时间:
2014-09-05 11:29:31
阅读次数:
292
Trie 树,又称字典树,单词查找树。它来源于retrieval(检索)中取中间四个字符构成(读音同try)。用于存储大量的字符串以便支持快速模式匹配。主要应用在信息检索领域。Trie 有三种结构: 标准trie (standard trie)、压缩trie、后缀trie(suffix trie)。...
分类:
其他好文 时间:
2014-09-05 09:56:01
阅读次数:
197
题目链接:uva 1462 - Fuzzy Google Suggest
题目大意:模拟google的模糊搜索,给定给一个字符串集合,然后有n次搜索,每次有一个整数x和一个字符串,表示可以对字符串进行x次修改,包括增加、修改和删除一个字符,问修改后的字符可能是字符集中有多少个字符串的前缀。
解题思路:先建立字典树,对于每次搜索,在字典树上进行dfs,根据参数x和字符串匹配的位置进行处理...
分类:
其他好文 时间:
2014-09-04 22:18:30
阅读次数:
223
我有一个做了一款移动浏览器的朋友。 ? ? ? 他有这样一个需求:当用户输入一个网站的url时候,移动浏览器需要识别这个网址是否是一个恶意网址。另外,他有一个恶意网址库。 ? ? ? 也许这样的解决方...
分类:
其他好文 时间:
2014-09-04 21:00:30
阅读次数:
231