C++课后习题训练记录Day154

1.练习项目 :

问题描述

卓儿有一个包含 n 个整数的数组,她想找到子数组中的最大异或和。

输入格式

第一行是一个整数 n,表示数组的大小。

接下来一行有 n 个整数 x1,x2,...,xn,表示数组的内容。

输出格式

输出一个整数,表示子数组中的最大异或和。

2.选择课程

在蓝桥云课中选择题库,选择题号17205并开始练习。

3.开始练习

(1)源码 :

#include<bits/stdc++.h>

using namespace std;

const int N=32*1e5+10,M=1e5+10;

int aM,prefixM;

int sonN2,tot=1;

void insert(int x)

{

int o=1;

for(int i=30;i>=0;i--){

int y=x>>i&1;

if(!sonoy)sonoy=++tot;

o=sonoy;

}

}

int query(int x)

{

int o=1,res=0;

for(int i=30;i>=0;i--){

int y=x>>i&1;

//若y==1则走0,若y==0则走1

if(sono!y)o=sono!y,res|=(1<<i);

else o=sonoy;

}

return res;

}

int main()

{

ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

int n;cin>>n;

for(int i=1;i<=n;i++)cin>>ai;

for(int i=1;i<=n;i++)prefixi=prefixi-1^ai;

insert(0);

int ans=0;

for(int i=1;i<=n;i++){

ans=max(ans,query(prefixi));

insert(prefixi);

}

cout<<ans<<'\n';

return 0;

}

(2)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(3)练习心得:注意每段代码末尾的分号是否存在,如不存在则需即使补充;输入法 是否切换 为英语模式;语法是否错误。

相关推荐
Logic1011 小时前
C语言/数据结构字符串题解:按字符类型重排(数字→字母→符号)——三趟扫描稳定分区
c语言·数据结构·字符串·时间复杂度·计数排序·算法题·ascii
weixin_424183617 小时前
开放—封闭原则实战(下):基于策略的流程编排与编译期多态
c++·分布式·系统架构
Logic1017 小时前
C语言/数据结构位运算题解:异或XOR找出学习计划中的“独特学习时间“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
wuminyu8 小时前
C++协程实现接收端的零拷贝Buffer管理原理剖析
java·linux·c语言·jvm·c++
小蒋学算法8 小时前
算法-交替删除操作后最后剩下的整数-跟着灵茶山艾府学算法
数据结构·算法
m0_380743878 小时前
C++中的freopen的用法实例详解
开发语言·c++
荆棘鸟智能8 小时前
林业遥感长势评估怎么做?从NDVI时序分析到LiDAR蓄积量回归
人工智能·算法·智慧林业
jimy19 小时前
polymorph.cpp里面的“析构函数、智能指针”问题
开发语言·c++
hhb_6189 小时前
AIRAGDebug:一键定位RAG链路异常
人工智能·python·算法
朝朝辞暮i9 小时前
C++ 第 6 课:switch —— 多状态选择
开发语言·c++·算法