子数组的最大异或和

ops/2024/10/20 13:22:18/

LintCode 炼码 - 更高效的学习体验!

子数组的最大异或和_牛客题霸_牛客网

算法:最大子数组异或和_异或值最大的子数组-CSDN博客

#include <iostream>
#include <limits>
#include <new>
#include <vector>
using namespace std;struct Trie {std::vector<Trie*> next;int val;Trie() {val = -1;next.resize(2, nullptr);}
};void insert(Trie* root, int num) {if (!root) {return;}for (int i = 31; i >= 0; --i) {int index = (num >> i) & 1;if (!root->next[index]) {root->next[index] = new (std::nothrow) Trie;}root = root->next[index];}root->val = num;
}int search(Trie* root, int num) {if (!root) {return -1;}for (int i = 31; i >= 0; --i) {int index = (num >> i) & 1;int target = 1 - index;if (i == 31) {target = index;}if (root->next[target]) {root = root->next[target];} else {root = root->next[1 - target];}}return root->val;
}class Solution {
public:Solution() {}int solve(std::vector<int>& nums) {Trie* root = new (std::nothrow) Trie;int result = -1;int prefix_sum = 0;insert(root, 0);for (auto num : nums) {prefix_sum ^= num;insert(root, prefix_sum);int tmp = search(root, prefix_sum);result = max(result, tmp ^ prefix_sum);}return result;}
};int main() {int a, b;    while (cin >> a) { // 注意 while 处理多个 casestd::vector<int> nums;nums.reserve(a);for (int i = 0; i < a; ++i) {cin >> b;//cout << "b :" << b << endl;nums.push_back(b);}Solution sol;cout << sol.solve(nums) << endl;}
}
// 64 位输出请用 printf("%lld")


http://www.ppmy.cn/ops/126987.html

相关文章

Linux学习笔记9 文件系统的基础

一、查看文件组织结构 Linux中一切都是文件。 Linux和Win的文件系统不是一个结构&#xff0c;Linux存在的根目录是所有目录的起点。 所有的存储空间和设备共享一个根目录&#xff0c;不同的磁盘块和分区挂载在其下&#xff0c;成为某个子目录的子目录&#xff0c;甚至设备也挂…

【Linux】< 条件变量等待>解决< 线程饥饿问题 >——【多线程同步问题】

前言 大家好吖&#xff0c;欢迎来到 YY 滴Linux系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…

没有HTTPS 证书时,像这样实现多路复用

在没有 HTTPS 证书的情况下,HTTP/2 通常不能直接通过 HTTP 协议使用。虽然 HTTP/2 协议的规范是可以支持纯 HTTP 连接(即通过 http:// 协议),但大多数主流浏览器(如 Chrome、Firefox)都 强制要求 HTTP/2 必须在 HTTPS 上运行。这是出于安全和隐私的考虑。 因此,如果你没…

DNS代理是什么?浅析DNS代理的工作原理及应用

DNS代理作为计算机网络中重要的一环&#xff0c;扮演着连接用户和互联网服务的关键角色。来了解DNS代理的定义、功能、工作原理以及在网络中的应用场景和重要性吧。 一、理解DNS代理。 DNS代理充当在用户和真正的DNS服务器之间的中介。它接收来自用户端的DNS查询请求&#xf…

pytest中@pytest.fixture常用顺序function

ytest中pytest.fixture用法讲解 1、测试函数开始之前2、执行测试函数&#xff1a;3、测试函数结束后&#xff1a; 备注&#xff1a;内容来自chatGPT 在 pytest 中&#xff0c;pytest.fixture 是一个非常强大的功能&#xff0c;用于设置测试所需的环境和状态。它可以通过 scope…

SpringBoot框架下的汽车票在线预订系统

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

数据结构_day5

目录 7.树 7.1 特性 7.1.1 什么是树 7.1.2 关于树的一些术语 7.2 二叉树 7.2.1 什么是二叉树 7.2.2 二叉树性质&#xff08;重点&#xff09; 7.2.3 满二叉树和完全二叉树 7.2.4 二叉树的存储结构 7.3 二叉树的链式存储 7.4 层次遍历 哈夫曼树 Huffman 图 1.什么是图 2.图的基本…

【Hive】3-HiveSQL 数据定义语言(DDL)

HiveSQL 数据定义语言&#xff08;DDL&#xff09; SQL中DDL语法的作用 数据定义语言(Data Definition Language&#xff0c;DDL)&#xff0c;是SQL语言集中对数据库内部的对象结构进行创建&#xff0c;删除&#xff0c;修改等的操作语言&#xff0c;这些数据库对象包括datab…