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

相关推荐
ShineWinsu8 小时前
对于Qt:QTreeWidget常见属性以及QTreeWidgetItem类的解析
开发语言·c++·qt·gui·客户端·多叉树·qtreewidget
严肃小白兔8 小时前
第 06/24 期:神经网络的反向传播算法:从链式法则到梯度计算
人工智能·神经网络·算法
落羽的落羽8 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习
【心态好不摆烂】9 小时前
数据结构基础精讲3
数据结构·算法
岑梓铭9 小时前
《考研408数据结构》第七章(B树 和 B+树)复习笔记
数据结构·笔记·b树·考研·408
漂流瓶jz10 小时前
UVA-1613 K度图的着色 题解答案代码 算法竞赛入门经典第二版
算法·深度优先·图论·贪心·aoapc·算法竞赛入门经典·uva
Pniubi11 小时前
动态规划入门 ( - 力扣509斐波那契数)
算法·动态规划
吴长建先生重名了12 小时前
GitHub Actions部署报表系统踩坑记:幂等性与限
算法
贝壳69012 小时前
一个2026年2月才上传的库,凭什么敢碰2009年就有人写烂的题目
算法