AcWing 143 最大异或对
2021-05-16 23:29
标签:math mask name int 字符串 复杂 const 答案 char 在给定的\(N\)个整数\(A1,A2……AN\)中选出两个进行xor(异或)运算,得到的结果最大是多少? 输入格式 第二行输入N个整数\(A1~AN\)。 输出格式 数据范围 \(1≤N≤105,\) \(0≤Ai 输入样例 3 1 2 3 输出样例 3 算是一个 初始化 一个空 插入 检索 回到问题上,这里是统计异或对,那么每个结点的子结点就只有0和1两种情况,即每个结点最多有两个儿子。我们对每个输入的数字,都将它的二进制串存储在trie树上,同时再在trie树上检索这个数字,对某个数A,如果它的某一位二进制数是0,那么我们在检索时就看trie树上对应结点的子结点是否有1,即去搜索与当前数的 整个 AcWing 143 最大异或对 标签:math mask name int 字符串 复杂 const 答案 char 原文地址:https://www.cnblogs.com/patrolli/p/11795783.html
第一行输入一个整数N。
输出一个整数表示答案。
Trie
树的模板题,归纳一下Trie
树的相关知识。Trie
树用于实现字符串快速检索,是一种多叉树结构,其每个结点都有若干子结点。一般的操作有:Trie
只包含一个根节点int trie[SIZE][26], tot = 1; //trie数组的第二维通常是已知的,这里只考虑小写字母,所以每个节点最多有26个子结点,tot是节点指针,对应于第一维
void insert(char* str){
int len = strlen(str), p = 1;
for(int k = 0; k
bool search(char* str){
int len = strlen(str), p = 1;
for(int k = 0; k
bit
位相反的结点,如果有就记录1,没有就沿着相同结点继续搜索,并记录0.trie
树的结点总数(空间复杂度)应该是儿子个数 X 字串最大长度#include
上一篇:windows追看日志bat脚本
下一篇:Win10常用快捷键