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

相关推荐
lvwangshu3 小时前
图论:LCA、树的直径、树的重心、二分图与 Tarjan 缩点
算法·图论
爱吃苹果的日记本3 小时前
数据结构第一课
c语言·数据结构·数据库·学习·c#
Jackson_GJH3 小时前
Qt 右键自定义菜单的实现
开发语言·c++·qt
张小姐的猫3 小时前
【AI大模型接入SDK】 —— Gemini接入封装
android·数据结构·数据库·c++·人工智能·python
302wanger3 小时前
干与湿:AI 拿走脑力之后,人剩下什么
算法
一木 之林3 小时前
七、一-AI 工程实践、插件化调试与软件交付
java·linux·c++
计算机编程-吉哥4 小时前
脑肿瘤MRI智能识别系统:基于深度学习的像素级脑肿瘤语义分割平台【计算机毕业设计选题推荐】
人工智能·python·深度学习·算法·毕业设计·课程设计·大数据毕业设计选题推荐
用户204937554954 小时前
端侧语音部署踩坑:模型能跑不等于终端真的能用
后端·算法
闲坐含香咀翠5 小时前
从 132MB 到 25MB:列式存储怎么把 CPU 缓存命中率提上去的
前端·数据结构·性能优化
码少女5 小时前
数据结构——快速排序
数据结构