码迷,mamicode.com
首页 >  
搜索关键字:字典树    ( 1305个结果
# [AcWing143] 最大异或和 [字典树]
[AcWing143] 最大异或和 [字典树] "传送门" 题意 给出N个整数,选择两个整数,使得异或和最大($0 i & 1;`可以直接取二进制数的任意一位,这样简单了许多。 查询的时候,先取出对应位的二进制数,在树中先走该二进制数的对立面,如果对立面不存在,再沿着该二进制数向下走一层。 Code ...
分类:Windows程序   时间:2020-01-25 16:45:10    阅读次数:98
trie(字典树) C++版本 Python版本
AcWing 835. Trie字符串统计 https://www.acwing.com/problem/content/837/ 维护一个字符串集合,支持两种操作: “I x”向集合中插入一个字符串x; “Q x”询问一个字符串在集合中出现了多少次。 共有N个操作,输入的字符串总长度不超过 105 ...
分类:编程语言   时间:2020-01-25 15:35:43    阅读次数:72
POJ3764 The xor-longest Path
题意: 找出树上异或和最大的一条路径$p$ $$ _{xor}length(p)=\oplus_{e\in_p}w(e) $$ 01字典树。同样用到了简单的异或性质 $0\oplus a = a, a\oplus a = 0$ 定义$f(u,v)$为$u$到$v$的路径异或和。那么$f(u,v) = ...
分类:其他好文   时间:2020-01-22 20:12:45    阅读次数:64
Codeforces 1285D Dr. Evil Underscores(字典树,dp)
"传送门" 题意: 有一个长度为 $n\ (1\leq n\leq 10^5)$的整数序列 $a_1,\cdots,a_n\ \ (0\leq a_i\leq 2^{30} 1)$,你需要找到一个非负整数 $X$ 使得 $\max(a_i\oplus X)$最小,其中 $\oplus$ 为按位异或运 ...
分类:其他好文   时间:2020-01-22 18:08:19    阅读次数:69
树上异或和最大
http://poj.org/problem?id=3764 题意:求上任意两点的边权异或最大值。 解法:dfs遍历树的同时将异或值加入01字典树中,同时查询最大异或值。 这样为什么就能保证你所求的结果对应的路径是连续的呢?考虑三种情况: 1.深搜的两条路径一个包含在另一个中,这样一异或,公共的部分 ...
分类:其他好文   时间:2020-01-22 01:20:18    阅读次数:107
HDU5536 Chip Factory
题意: 给出一个数组$s$,求 $$ max_{i,j,k}(s_i + s_j)\oplus s_k ,i\neq j\neq k $$ 思路: 01字典树,首先还是正常插入。可以想到枚举$i$、$j$的和,再字典树跑$k$,这里涉及下标不能相同,所以可以把$i$、$j$,先删除了。在插入的时候计 ...
分类:其他好文   时间:2020-01-21 20:03:23    阅读次数:71
01字典树(删除与添加操作)
http://acm.hdu.edu.cn/showproblem.php?pid=5536 题意:在一个数组中找出 (s[i]+s[j])^s[k] 最大的值,其中 i、j、k 各不相同。 题解:1、可直接暴力O(n3) 2、01字典树可以在数组中找到一个数与X异或和最大和其异或结果。本题中的X是 ...
分类:其他好文   时间:2020-01-21 18:24:35    阅读次数:74
HDU4825 Xor Sum
题意: 询问$m$次,每次给出一个正整数$k$,求数组中和他异或的最大值。 思路: 01字典树裸题,……但是我不会,特意学习一下。顺便回忆一下字典树 首先把数组中的每一个数,二进制存到字典树中,从高位开始,然后每次询问从上往下跑,尽量0走1,1走0。 注意数组的大小 , _ !!!! ...
分类:其他好文   时间:2020-01-21 13:31:52    阅读次数:82
【字符串算法】字典树Trie入门
基本概念 顾名思义,字典树(也叫前缀树)就是可以像字典那样来保存一些单词的集合。 如图所示: (图片来自OIWiKi) 设根节点的标号为$0$,然后其余结点依次编号;我们用数组来存每个节点的所有子节点 更具体地,设数组$ch[MaxNode][SigmaSize]$,其中$MaxNode$表示最大可 ...
分类:编程语言   时间:2020-01-20 22:44:56    阅读次数:88
字典树
int trie[SIZE][26], tot=1;//初始化,假设字符串由小写字母构成 bool ed[SIZE]; void ins(char *str) { int len=strlen(str),p=1; for(int k=0;k<len;k++) { int ch=str[k]-'a'; ...
分类:其他好文   时间:2020-01-18 21:36:42    阅读次数:90
1305条   上一页 1 ... 8 9 10 11 12 ... 131 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!