题目大意
给定一个集合,支持加入,纠缠操作,并查询某个字符串是否在集合里面。
题解
先不看纠缠操作,很显然一棵trie就可以解决。
考虑纠缠操作,其实就是将trie树上面的某些节点进行合并,
用并查集来合并。
设需要纠缠的两个串a,b在tire上的最后一个节点分别为x,y,
设过程entanglement(x,y)表示将x跟y纠缠并把y的信息合并到x上面,
从0到9枚举儿子,
如果x,y都有这个儿子,就entanglement(x的儿子,y的儿子),
如果x没有这个儿子,而y有,就将x的这个儿子指向y的这个儿子
code
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string.h>
#include <cmath>
#define ll long long
#define N 8000003
#define M 103
#define P putchar