题目链接:http://acm.buaa.edu.cn/problem/439/

题意:给出一个数列。求有多少个区间[L,R],使得区间之内的数字之和不大于K且区间内数字的抑或值不为0.

思路:首先计算抑或值为0的区间个数P,则答案为所有合法区间(即和不大于K)减去P。每次将前面一段和当前值抑或,设为X,记录之前每个抑或值的个数,假设前面有个位置的抑或值也为X,设那个位置为a,当前位置为b,则[a+1,b]之间的数字的抑或值为0.然后就是和不大于K,每次累加,累加到当前和大于K的时候减去当前连续段的前面的数字。

map<i64,i64> hash;
i64 a[100005],K;
int n,C;int main()
{RD(C);while(C--){RD(n);RD(K);int i;FOR0(i,n) RD(a[i]);hash.clear();hash[0]=0;int tail=0;i64 xorsum=0,xortail=0,sum=0,ans=0,all=0;for(i=0;i<n;i++){sum+=a[i];xorsum^=a[i];if(hash.find(xorsum)==hash.end()) hash[xorsum]=1;else hash[xorsum]=hash[xorsum]+1;while(sum>K){sum-=a[tail];xortail^=a[tail];hash[xortail]=hash[xortail]-1;tail++;}all+=i-tail+1;if(tail==0) hash[0]++;else hash[xortail]++;if(tail<=i) ans+=hash[xorsum]-1;if(tail==0) hash[0]--;else hash[xortail]--;}PR(all-ans);}return 0;
}

  

BUAA 439 孟竹屌丝玩儿游戏相关推荐

  1. BUAA 436 孟竹的复习计划(二维树状数组)

    题目链接:http://acm.buaa.edu.cn/problem/436/ 题意:一个数列两种操作:(1)将某个位置的数字改成另一个数字:(2)交换两个位置的数字.每次操作之后输出逆序数的个数. ...

  2. 从零使用强化学习训练AI玩儿游戏(3)——使用Q-learning

    本文目前主要是写给自己的一个笔记,接下来这段时间会逐步记录我是怎么通过学习使用TensorFlow+Keras训练神经网络自己玩儿游戏,如果能间接帮助到他人就最好不过了,不喜勿喷. 上一篇我们已经找到 ...

  3. 从零使用强化学习训练AI玩儿游戏(1)——安装环境

                本文目前主要是写给自己的一个笔记,接下来这段时间会逐步记录我是怎么通过学习使用TensorFlow+Keras训练神经网络自己玩儿游戏,如果能间接帮助到他人就最好不过了,不喜勿 ...

  4. 光棍节程序员闯关秀——闲来无事玩玩儿游戏~

    告诉我没女朋友的人不学习干嘛??? 第一次写题解,有点激动哈咳咳~ 话说为什么"光棍"老得和程序员挂上钩?人家好多程序员有车子有房子有票子有漂亮老婆有可爱的孩子人生早就已经圆满了好 ...

  5. 基础知识漫谈(3) 组合基础知识,设计游戏框架

    如何让画面动起来? 都知道动画的原理,想想看跑马灯,在任意时刻把跑马灯按停,面对眼睛的那附图,它叫做帧(Frame). 帧,就是一串儿连贯动画里的单个截面. 玩儿游戏的人知道,要达到基本流畅的水准,3 ...

  6. python写的游戏怎么给别人玩-用python写游戏脚本原来这么简单

    前言 最近在玩儿公主连结,之前也玩儿过阴阳师这样的游戏,这样的游戏都会有个初始号这样的东西,或者说是可以肝的东西. 当然,作为一名程序员,肝这种东西完全可以用写代码的方式帮我们自动完成.游戏脚本其实并 ...

  7. python游戏最简单代码-用python写游戏脚本原来这么简单

    前言 最近在玩儿公主连结,之前也玩儿过阴阳师这样的游戏,这样的游戏都会有个初始号这样的东西,或者说是可以肝的东西. 当然,作为一名程序员,肝这种东西完全可以用写代码的方式帮我们自动完成.游戏脚本其实并 ...

  8. [转]手游研发数据专业术语科普 游戏热度跟啥有关

    From : http://news.131.com/news/yejie/14/0603/1193340_1.html 对于移动游戏来说,不俗的下载量是一个好的开始,但作为一名游戏开发者,或一家游戏 ...

  9. gpu云服务器运行游戏_追求高性能游戏,高帧高画质运行,你的手机需要多强的GPU才够?...

    关于骁龙865今年增加了很多新特性,特别是游戏方面,支持最高144Hz的屏幕刷新率,新一代的Adreno 650 GPU,性能相比上代提升25%,不过今年高通给手机GPU引入了一个新概念就是用户可以自 ...

最新文章

  1. Exchange 2013学习(二),关于约会、会议和事件
  2. python 全局变量 局部变量
  3. Redux入门之实现一个迷你版的Redux
  4. Python入门图文解说
  5. axios nodejs 上传图片_Vue Axios跨域、文件上传
  6. 设计模式之中介者模式(mediator模式)
  7. Spring之装配Bean(一)
  8. ALAssetsLibrary-代码操作iOS相册资源
  9. 给不会调用C++STL库中二分函数lower_bound,upper_bound,binary_search同学的一些话!
  10. Gradle学习之使用java plugin
  11. Android SDK Manager下载详解
  12. 零火线都带电该怎么处理?
  13. R语言模拟:Cross Validation
  14. 分布式文件存储FastDFS之安装Nginx实现文件访问
  15. Aspose.Word 操作word表格的行 插入行 添加行
  16. mac开机启动项怎么设置,苹果电脑开机启动项在哪里设置
  17. TCP的AIMD(加性增窗、乘性减窗)策略
  18. 镁光闪存颗粒对照表_详解闪存颗粒的种类
  19. 【Devc++】战斗1.0.2
  20. deepin 20安装后系统没有声音解决方案(亲测有效)

热门文章

  1. Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件
  2. 新闻发稿基本流程你知道么?
  3. zabbix 添加监控主机和自定义模板
  4. idea从git上拉取项目没进入本地git(Filename too long问题)
  5. 杨振宁李政道分手内幕
  6. 转:电子邮件的工作原理
  7. [人人]在大学的第二个总结
  8. VSS、VDD 与 VCC 的区别
  9. Vmware16支持MacOS
  10. 【文学文娱】《人类简史》--从动物到上帝