题目连接: https://codeforces.com/problemset/problem/1109/A

题目大意: 给定n个数 问有多少个偶数长度的区间l,r 使得mid=(l+r-1)/2,l到mid的数异或等于mid+1到r的异或

官方题解,很详细了 第一次学到异或还能求前缀和,斯巴拉西. 枚举区间的方法也是第一次学到.
sum[i]代表a1~ai的异或和, 那么题目等价于求多少对l~r 使得sum[l-1]=sum[r] 因为要求区间长度为偶数 当r为奇数时 l一定是偶数 那么l-1就是奇数,反过来也一样 .所以最后等价于 对当前枚举的i,i前面有多少与i奇偶性相同的sum[i],开了个map记录下就行.
唯一需要注意的就是 mp[0][0]的初始值为1,看了很多博客也没具体明白为什么 ,可能意思代表长度为0时异或为0也在数组中(猜的)
举个例子,输入为
2
1 1
如果不初始化 最后答案就是0 因为当i等于2时 mp[0][0]为0 ans+=mp[0][0] 导致对答案没贡献


#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<iostream>
#include<vector>
#include<map>
#include<set>
#include<stack>
#include<queue>
#include<stdlib.h>
#include<algorithm>
#include<time.h>
#include<unordered_map>
#define bug1(g) cout<<"test: "<<g<<endl
#define bug2(g,i) cout<<"test: "<<g<<" "<<i<<endl
#define bug3(g,i,k) cout<<"test: "<<g<<" "<<i<<" "<<k<<endl
#define bug4(a,g,i,k) cout<<"test: "<<a<<" "<<g<<" "<<i<<" "<<k<<endl
using namespace std;
typedef long long ll;
unordered_map<int,int>mp[2];
int main()
{ios::sync_with_stdio(0);ll n,x,a,ans=0;cin>>n;mp[0][0]=1;x=0;for(int i = 1;i<=n;i++){cin>>a;x^=a;ans+=mp[i%2][x];++mp[i%2][x];}cout<<ans<<endl;return 0;
}

Codeforces #539 (Div. 1) A. Sasha and a Bit of Relax (异或 前缀和)相关推荐

  1. Codeforces Round #539 (Div. 2) C. Sasha and a Bit of Relax

    链接:https://codeforces.com/problemset/problem/1113/C 题意:长度为n的序列 ,若l,r满足,则称这对l,r为funny,其中mid=(r-l+)/2 ...

  2. A. Sasha and a Bit of Relax(异或的性质 + 前缀和的性质)

    Problem - 1109A - Codeforces Sasha喜欢编程.有一次,在一场很长时间的比赛中,萨沙觉得他有点累了,需要放松一下.他照做了.但由于萨沙不是一个普通人,他更喜欢不同寻常地放 ...

  3. Codeforces Round #539 (Div. 1)

    有史以来打的最烂的一场...B题都WA了两发,D题数树不知道结论不会做,E题没调出来...GG了. 也说明我实力其实还不够吧...再多加练习,我还有机会继续努力. 题目链接 A. Sasha and ...

  4. Codeforces Round#539(Div. 2)

    第一次写博客,记录一下cf的训练过程,以激励自己吧.在这之前消沉了很长一段时间,才发现和同龄人差距越来越大,如果努力都不努力,那谈何抱怨天赋能力呢? A. Sasha and His Trip 简单的 ...

  5. Sasha and a Bit of Relax K倍区间 (前缀和异或 前缀和计数 思维)

    (29条消息) CodeForces - 1109A Sasha and a Bit of Relax(思维+异或和,好题)_Frozen_Guardian的博客-CSDN博客 Sasha and a ...

  6. Codeforces Round #539 Div. 1

    A:即求长度为偶数的异或和为0的区间个数,对前缀异或和用桶记录即可. #include<iostream> #include<cstdio> #include<cmath ...

  7. 【codeforces 718 CD】C. Sasha and ArrayD. Andrew and Chemistry

    C. Sasha and Array 题目大意&题目链接: http://codeforces.com/problemset/problem/718/C 长度为n的正整数数列,有m次操作,$o ...

  8. Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum (离线树状数组+前缀xor)

    题目链接:http://codeforces.com/contest/703/problem/D 给你n个数,m次查询,每次查询问你l到r之间出现偶数次的数字xor和是多少. 我们可以先预处理前缀和X ...

  9. [Codeforces] #603 (Div. 2) A-E题解

    [Codeforces]1263A Sweet Problem [Codeforces]1263B PIN Code [Codeforces]1263C Everyone is a Winner! [ ...

最新文章

  1. 题目:查找数组中的重复数字,要求空间复杂度为O(1)(基于Java实现)
  2. 11.8. DOMDocument
  3. Linux--Ubuntu12.04安装NDK
  4. webpack从入门到精通(二)开发环境的基本配置
  5. 冯山C语言3 15,冯山
  6. Flink流计算WordCount代码示例
  7. Android批量打包 如何一秒内打完几百个apk渠道包
  8. Event Delegate(代理)异常:该委托必须有一个目标 解决方法
  9. Jupyter Notebook使用说明
  10. 如何在点击事件中取得复选框选中的单元格值
  11. wcf、web api、webservicer 之间的区别
  12. 免费采集软件智能万能采集数据
  13. 深度学习(Deep Learning)综述及其延伸,入门必看!
  14. 全网最全的安服工程师修炼手册
  15. 华硕k43tk拆机清灰教程
  16. WordPress初学者入门教程-写文章
  17. 201671030116宋菲菲 《英文文本统计分析》结对项目报告
  18. 选择防身武器,利用身边的物品才是王道
  19. YOLOv5的Tricks | 【Trick11】在线模型训练可视化工具wandb(Weights Biases)
  20. 积性函数欧拉函数莫比乌斯函数

热门文章

  1. 百度AI技术【黑白图像上色】给图像上上色,带给你一个精彩的世界
  2. xilinx A7芯片介绍
  3. 本行卡修改密码基本流程说明
  4. java语言程序设计教程课后题答案魏永红_《Java语言程序设计基础教程》习题解答...
  5. 主板芯片组与内存映射
  6. 从青铜到王者,进阶数据可视化2.0的五个Python库
  7. Linux下编辑处理数理化公式(转)
  8. PLSQL连接远程Oracle数据库教程(Windows11最新详细教程)
  9. 做喜欢的事或能看到希望,就不会觉得辛苦
  10. 第11周【项目5 - 迷宫问题之图深度优先遍历解法】