T83312 【音乐会】达拉崩吧·上

题解

线段树板子题

把原来的 + 变成 ^

但是注意一下懒标记,这里讲一下小技巧

代码

#include<bits/stdc++.h>using namespace std;const int maxn=1e5+10;
int n,m,x,y,v,opr;
int a[maxn],add[maxn*4];
long long sum[maxn*4];
long long ans;inline int read()
{int ans=0;char last=' ',ch=getchar();while(ch<'0'||ch>'9') last=ch,ch=getchar();while(ch>='0'&&ch<='9') ans=ans*10+ch-'0',ch=getchar();if(last=='-') ans=-ans;return ans;
}void build(int k,int l,int r)
{if(l==r){sum[k]=a[l];  return ;} int mid=(l+r)>>1;build(k<<1,l,mid);build(k<<1|1,mid+1,r);sum[k]=sum[k<<1]^sum[k<<1|1];
}void Add(int k,int l,int r,int p)
{add[k]^=p;sum[k]^=(long long)((r-l+1)%2)*p;   //注意这里的小技巧
}void pushdown(int k,int l,int r,int mid)
{if(add[k]==0) return ;Add(k<<1,l,mid,add[k]);Add(k<<1|1,mid+1,r,add[k]);add[k]=0;
}void modify(int k,int l,int r,int x,int y,int v)
{if(x<=l&&r<=y) return Add(k,l,r,v);int mid=(l+r)>>1;pushdown(k,l,r,mid);if(x<=mid) modify(k<<1,l,mid,x,y,v);if(mid<y) modify(k<<1|1,mid+1,r,x,y,v);sum[k]=sum[k<<1]^sum[k<<1|1];
}long long query(int k,int l,int r,int x,int y)
{if(x<=l&&r<=y) return sum[k];int mid=(l+r)>>1;long long res=0;pushdown(k,l,r,mid);if(x<=mid) res^=query(k<<1,l,mid,x,y);if(mid<y) res^=query(k<<1|1,mid+1,r,x,y);return res;
}int main()
{n=read();m=read();for(int i=1;i<=n;i++)a[i]=read();build(1,1,n);for(int i=1;i<=m;i++){opr=read();x=read();y=read();if(opr==1){v=read();modify(1,1,n,x,y,v);}if(opr==2){ans=query(1,1,n,x,y);printf("%ld\n",ans);}}return 0;
}


强烈安利 water-lift  QWQ

转载于:https://www.cnblogs.com/xiaoyezi-wink/p/11106898.html

T83312 【音乐会】达拉崩吧·上相关推荐

  1. 2019.6.28 校内测试 T4 【音乐会】达拉崩吧·上

    考试的一道附加题~ 一看题目描述:把区间[l,r]里每个数异或上x,求区间[l,r]里所有数的异或和,这明显的要用数据结构或RMQ吧. 恩,所以正解就是线段树啦,至于树状数组行与否,不知道~ wate ...

  2. 达拉崩吧的酒宴 | 感受算法的魅力

    1. 达拉崩吧的酒宴 成绩 10 开启时间 2019年07月29日 星期一 10:00 折扣 0.8 折扣时间 2019年08月6日 星期二 00:00 允许迟交 否 关闭时间 2019年10月8日 ...

  3. C语言程序设计与实践 北理工 1. 达拉崩吧的酒宴

    达拉崩吧的酒宴 Description 很久很久以前,巨龙突然出现,带来灾难带走了公主又消失不见,王国十分危险,世间谁最勇敢,一位勇者赶来大声喊:"我要带上最好的剑,翻过最高的山,闯进最深的 ...

  4. 算法 1.达拉崩吧的酒宴

    算法 1. 达拉崩吧的酒宴 问题描述 输入 输出 源 答 问题描述 很久很久以前,巨龙突然出现,带来灾难带走了公主又消失不见,王国十分危险,世间谁最勇敢,一位勇者赶来大声喊:"我要带上最好的 ...

  5. (程序设计方法与实践)达拉崩吧的酒宴

    达拉崩吧的酒宴 Description 很久很久以前,巨龙突然出现,带来灾难带走了公主又消失不见,王国十分危险,世间谁最勇敢,一位勇者赶来大声喊:"我要带上最好的剑,翻过最高的山,闯进最深的 ...

  6. 达拉崩吧java,当剽窃贼遇见《达拉崩吧》,网友:这届玩家过分沙雕,惹不起...

    原标题:当剽窃贼遇见<达拉崩吧>,网友:这届玩家过分沙雕,惹不起 ​浸在开包的快乐和用新卡上分的热忱中,关于上分卡组推荐.卡牌点评什么的就不多说了,毕竟现在已经有很多类似的推荐了,咱就不凑 ...

  7. 软工《英雄达拉崩吧》项目最后一篇博客

    作为主要测试人员,这几天共计5-6个小时的测试给我最大的感受就是:不测不知道一测吓一跳啊,测试真的是软件工程中很重要的一部分啊,因为测试完就是发行版本了,就要交给用户的. 在测试过程中很多细节性的错误 ...

  8. 计算机音乐谱达拉崩吧,天谕手游达拉崩吧乐谱代码是什么-天谕手游达拉崩吧乐谱代码分享_快吧手游...

    天谕手游达拉崩吧乐谱代码是什么?天谕中我们可以使用外部代码复制到游戏中,然后制作出自己的音乐乐谱.很多小伙伴都想把这一首歌写进自己的天谕乐谱.下面就一起来看看吧! 天谕手游达拉崩吧乐谱代码分享 MML ...

  9. #洛谷#滑稽#编程版『达拉崩吧』

    编程版『达拉崩吧 』 很久很久以前 算法突然出现 带来RE 带走了AC又消失不见 编程十分危险 世间谁最勇敢 一位神犇赶来 大声喊 我要 写出最高的树 打出最大的表 编出最长的代码 把AC带回到面前 ...

最新文章

  1. Fedora dnf配置
  2. 「OKR 理论篇」5 分钟快速掌握 OKR 管理法
  3. R语言pacman包管理R编程语言需要的包实战:使用p_load函数安装和加载多个R包、使用p_unload函数卸载多个R包、使用p_update函数更新过期的R包
  4. hashmap中用红黑树不用其他树_HashMap面试专题:常问六题深入解析
  5. 技术走向管理一些思考(1)-性格特质和自我管理
  6. T4文本模板转换过程
  7. BAPI:BAPI_CONTRACT_CREATE(内部合同创建)
  8. celery 学习笔记定时任务和异步任务
  9. adjacent_difference 的使用
  10. c2-00支持java_双卡双待 诺基亚C2-00的外观详解
  11. SQLAlchemy学习教程
  12. 手把手教你用Vscode Debugger调试代码
  13. mysql毕业生信息管理系统,本科毕业设计信息管理系统的设计(Struts,MySQL)
  14. nginx打包文件以及解压
  15. java indexeddb_IndexedDB使用与出坑指南
  16. 概率论与数理统计——MATLAB
  17. 学术写作常用的网站和软件总结(含Copytranslator+Grammarly+Academic Prasebank+QuillBot)
  18. 乔布斯《遗失的访谈》整理
  19. 计算机综合应用实训是什么意思,计算机综合应用能力实训报告.doc
  20. 6天带你玩转mysql课程第一天

热门文章

  1. 化学相关计算机知识点,计算机在中学化学教学中的应用
  2. php fpm深度解析
  3. Tails 警告用户不要使用 Tor 浏览器
  4. c语言结构体定义和使用typedef,结构体定义typedef struct 用法详解
  5. 普通For循环和增强For循环
  6. win10重置进度条不动了_Windows更新下载进度停在0%不动的解决方法
  7. VS打开工程时提示:文件加载 使用Unicode (UTF-8)编码加载文件***时,有些字节已用Unicode替换字符替换。
  8. 杂记 - 云 给你的第四封信
  9. Mysqld_exporter部署及常见的几种错误
  10. 深圳小众好玩的公园推荐 你肯定没去过