AtCoder Regular Contest 098 D - Xor Sum 2 区间异或=相加 DP思想
题意:给出n个数,求它的连续子序列中,满足下列公式,(l,r)的对数有多少对
Al xor Al+1 xor … xor Ar=Al + Al+1 + … + Ar
思路:由题意可以得到,连续子序列,如果在ai这个数不符合公式的话,即之后的符合条件的对数中将不在需要这个元素,所有枚举元素来计算符合公式的对数 。
难以理解的就是异或等效于加法与减法(!!!)
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define N 200005 ll he[N],yi[N]; int main()
{
ll n,i,x,l,r,ans; while (scanf("%lld",&n)!=EOF)
{
for (i=;i<=n;i++)
{
scanf("%lld",&x);
he[i]=he[i-]+x;//计算加法前缀和
yi[i]=yi[i-]^x;//计算异或前缀和
} l=;//左端点
ans=; for (r=;r<=n;r++)//以第r个数为结尾进行遍历
{
for (;he[r]-he[l-]!=(yi[r]^yi[l-]);l++); //b到c的异或和=a到c的异或和 异或 a到b的异或和(可以证明)
ans+=r-l+;//l到r的串中共有长度个情况(1个数组成,2个数组成。。。)
} printf("%lld\n",ans);
return ;
} return ;
}
AtCoder Regular Contest 098 D - Xor Sum 2 区间异或=相加 DP思想的更多相关文章
- AtCoder Beginner Contest 098 D - Xor Sum 2
D - Xor Sum 2 Time limit : 2sec / Memory limit : 1024MB Score : 500 points Problem Statement There i ...
- AtCoder Regular Contest 098
AtCoder Regular Contest 098 C - Attention 题意 给定一个只包含"E","W"字符串,可以花一的花费使他们互相转换.选定 ...
- AtCoder Regular Contest 098 F.Donation
传送门 首先,对于一个点i,进入这个点前必须大于等于Ai,每个点必须捐赠Bi 那么我们可以在每个点最后一次经过的时候再捐赠,这样显然更优 现在我们假设每个点都是最后一次经过的时候捐赠.现在我们把捐赠的 ...
- AtCoder Regular Contest 094
AtCoder Regular Contest 094 C - Same Integers 题意: 给定\(a,b,c\)三个数,可以进行两个操作:1.把一个数+2:2.把任意两个数+1.求最少需要几 ...
- AtCoder Regular Contest 096
AtCoder Regular Contest 096 C - Many Medians 题意: 有A,B两种匹萨和三种购买方案,买一个A,买一个B,买半个A和半个B,花费分别为a,b,c. 求买X个 ...
- AtCoder Regular Contest 097
AtCoder Regular Contest 097 C - K-th Substring 题意: 求一个长度小于等于5000的字符串的第K小子串,相同子串算一个. K<=5. 分析: 一眼看 ...
- AtCoder Regular Contest 099
AtCoder Regular Contest 099 C - Minimization 题意 题意:给出一个n的排列.每次操作可以使一段长度为K的连续子序列变成该序列的最小数.求最少几次使得整个数列 ...
- AtCoder Regular Contest 061
AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...
- AtCoder Regular Contest 094 (ARC094) CDE题解
原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...
随机推荐
- spring的声明式事务,及redis事务。
Redis的事务功能详解 http://ghoulich.xninja.org/2016/10/12/how-to-use-transaction-in-redis/ MULTI.EXEC.DISCA ...
- 08提权 系统文件权限和远程连接IP绕过 安装后门
大家都知道08权限的系统权限设置很严格 面对限制IP连接的情况 我们及时拿到system权限 有账号也上不去这种情况下只能弄shift后门 或者放大镜了 但08权限 在system权限也操作不了系 ...
- PHP面向对象(OOP)编程入门教程链接
PHP官方学习OOP: http://php.net/manual/zh/oop5.intro.php 从其他博主学习:(以下链接来源: http://blog.snsgou.com/post-41. ...
- 通过JAVA从MQ读取消息的时候报错及解决
如果是通过JAVA将消息写入到MQ,再通过JAVA去读取消息,采用MQMessage读消息的方法readUTF()去读取的时候,就不会报错,可以正常读出来.如果采用在MQ资源管理器中插入测试消息或者是 ...
- [转]删除MSSQL所有的约束及表格
--删除所有约束.表.视图等SQL脚本 --############################################### --删除所有外键约束 --################# ...
- webstorm使用svn
http://www.jetbrains.com/phpstorm/webhelp/using-subversion-integration.html 下载slikSVN http://subvers ...
- MVC学习八:MVC View提交数据
学习编程最主要的就是数据交互,MVC中数据交互是怎么样的呢? 1.Controller向View传输数据在http://www.cnblogs.com/WarBlog/p/7127574.html中有 ...
- js获取浏览器上一访问页面URL地址,document.referrer方法
如题,可用document.referrer方法获取上一页面的url 但是也有不可使用的情况 直接在浏览器地址栏中输入地址: 使用location.reload()刷新(location.href或者 ...
- Oracle中table数据数据类型
function F_ReturnDescription(varID in varchar2) return varchar2 is numDataCount ); mytable ly_family ...
- iOS开发学习资源
最近想写点关于iOS开发的总结和心得.虽然网上资源一大堆,质量参差不齐,还是推荐一点干货吧! https://www.objc.io/issues/ 这个网站的文章质量很高,很多干货,可惜今年已经停 ...