trie
Yorug
qwq
展开
-
洛谷P4551 最长异或路径 01trie
题目传送门 Description 给你一棵有边权的树,求最长异或路径。 Solution 和这题基本没区别。 不妨令 pip_ipi 为 iii 号节点到一号的路径异或值。 则点 uuu 和点 vvv 的路径异或值为 pu⊕pvp_u \oplus p_vpu⊕pv。 Code #include<bits/stdc++.h> using namespace std; int n,a[105000],vis[105000]; int head[105000],cnt; struct edg原创 2021-08-12 22:10:42 · 75 阅读 · 0 评论 -
LOJ 10051「一本通 2.3 例 3」Nikitosh 和异或 01trie
题目传送门 Descripton 给定一个数列,求区间最大异或和。 Solution 被一个数异或两次的结果为 000 ,相当于没异或,所以a[l]⊕a[l+1]⊕...⊕a[r]=(a[1]⊕a[2]⊕...⊕a[l−1])⊕(a[1]⊕a[2]⊕...⊕a[r])a[l]\oplus a[l+1]\oplus...\oplus a[r]=(a[1]\oplus a[2] \oplus ...\oplus a[l-1])\oplus(a[1]\oplus a[2] \oplus ...\oplus a[原创 2021-08-12 22:06:02 · 103 阅读 · 0 评论 -
LOJ 10050 「一本通 2.3 例 2」The XOR Largest Pair 01trie
题目传送门 Description 给定一个数列,从中选出两个数,求异或的最大值。 Solution 01trie模板题。 我们将数据以二进制形式储存在trie树中,每次查询时,从大位到小位尽可能选与当前相异的数据。 code #include<bits/stdc++.h> using namespace std; int n,a[1050000]; int trie[10500000][2],tot=0,ans=-1; void insert(int x){ int p=0; for(in原创 2021-08-12 21:30:23 · 126 阅读 · 0 评论