![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
trie
玛珈山大萌新
破山中贼易,破心中贼难。不破不立,破而后立,立而为人。
展开
-
[AcWing面向模型编程]1285. 单词
题目:1285. 单词分析:若b串是a串的子串,那么b串一定也是a串某个前缀的后缀。因此我们从下往上遍历每个点,将其贡献加到其nex点即可(理论依据是:拓扑序)代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#define print(i) cout << "debug: " <&原创 2020-11-20 20:25:39 · 130 阅读 · 0 评论 -
可持久化trie
AcWing256. 最大异或和给定一个非负整数序列 a,初始长度为 N。有 M 个操作,有以下两种操作类型:1、”A x”:添加操作,表示在序列末尾添加一个数 x,序列的长度 N 增大1。2、”Q l r x”:询问操作,你需要找到一个位置 p,满足l≤p≤rl≤p≤r,使得:a[p] xor a[p+1] xor … xor a[N] xor x 最大,输出这个最大值。输入格式第一行包含两个整数 N,M,含义如问题描述所示。第二行包含 N 个非负整数,表示初始的序列 A。接下来 M 行原创 2020-11-14 21:54:23 · 212 阅读 · 0 评论 -
XOR key 51Nod - 1295 [可持久化trie]
分析:像主席树那样可持久化代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#define print(i) cout << "debug: " << i << endl#define close() ios::sync_with_stdio(0), cin.tie原创 2020-10-13 22:11:44 · 99 阅读 · 0 评论 -
Query on A Tree HDU - 6191
分析:解法1:离线+trie合并(自下而上合并)解法2:可持久化数据结构代码://解法1#include <bits/stdc++.h>using namespace std;typedef long long ll;//三年竞赛一场空,不开long long见祖宗 //typedef __int128 lll;#define print(i) cout << "debug: " << i << endl#define close() io原创 2020-10-13 20:54:56 · 124 阅读 · 0 评论