Codeforces #539 (Div. 1) A. Sasha and a Bit of Relax (异或 前缀和)
题目连接: 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 (异或 前缀和)相关推荐
- 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 ...
- A. Sasha and a Bit of Relax(异或的性质 + 前缀和的性质)
Problem - 1109A - Codeforces Sasha喜欢编程.有一次,在一场很长时间的比赛中,萨沙觉得他有点累了,需要放松一下.他照做了.但由于萨沙不是一个普通人,他更喜欢不同寻常地放 ...
- Codeforces Round #539 (Div. 1)
有史以来打的最烂的一场...B题都WA了两发,D题数树不知道结论不会做,E题没调出来...GG了. 也说明我实力其实还不够吧...再多加练习,我还有机会继续努力. 题目链接 A. Sasha and ...
- Codeforces Round#539(Div. 2)
第一次写博客,记录一下cf的训练过程,以激励自己吧.在这之前消沉了很长一段时间,才发现和同龄人差距越来越大,如果努力都不努力,那谈何抱怨天赋能力呢? A. Sasha and His Trip 简单的 ...
- Sasha and a Bit of Relax K倍区间 (前缀和异或 前缀和计数 思维)
(29条消息) CodeForces - 1109A Sasha and a Bit of Relax(思维+异或和,好题)_Frozen_Guardian的博客-CSDN博客 Sasha and a ...
- Codeforces Round #539 Div. 1
A:即求长度为偶数的异或和为0的区间个数,对前缀异或和用桶记录即可. #include<iostream> #include<cstdio> #include<cmath ...
- 【codeforces 718 CD】C. Sasha and ArrayD. Andrew and Chemistry
C. Sasha and Array 题目大意&题目链接: http://codeforces.com/problemset/problem/718/C 长度为n的正整数数列,有m次操作,$o ...
- Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum (离线树状数组+前缀xor)
题目链接:http://codeforces.com/contest/703/problem/D 给你n个数,m次查询,每次查询问你l到r之间出现偶数次的数字xor和是多少. 我们可以先预处理前缀和X ...
- [Codeforces] #603 (Div. 2) A-E题解
[Codeforces]1263A Sweet Problem [Codeforces]1263B PIN Code [Codeforces]1263C Everyone is a Winner! [ ...
最新文章
- 题目:查找数组中的重复数字,要求空间复杂度为O(1)(基于Java实现)
- 11.8. DOMDocument
- Linux--Ubuntu12.04安装NDK
- webpack从入门到精通(二)开发环境的基本配置
- 冯山C语言3 15,冯山
- Flink流计算WordCount代码示例
- Android批量打包 如何一秒内打完几百个apk渠道包
- Event Delegate(代理)异常:该委托必须有一个目标 解决方法
- Jupyter Notebook使用说明
- 如何在点击事件中取得复选框选中的单元格值
- wcf、web api、webservicer 之间的区别
- 免费采集软件智能万能采集数据
- 深度学习(Deep Learning)综述及其延伸,入门必看!
- 全网最全的安服工程师修炼手册
- 华硕k43tk拆机清灰教程
- WordPress初学者入门教程-写文章
- 201671030116宋菲菲 《英文文本统计分析》结对项目报告
- 选择防身武器,利用身边的物品才是王道
- YOLOv5的Tricks | 【Trick11】在线模型训练可视化工具wandb(Weights Biases)
- 积性函数欧拉函数莫比乌斯函数