Warmup:Upanishad (吉林省赛) (异或的减法思维,排序预处理,后按顺序处理, 树状数组,贪心第把数往后面放)

Posted 小幻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Warmup:Upanishad (吉林省赛) (异或的减法思维,排序预处理,后按顺序处理, 树状数组,贪心第把数往后面放)相关的知识,希望对你有一定的参考价值。

 

 

 

思路:

  • 第一眼看到这个题,就准备直接用莫队去做, 每一次l ,r 第一次遇到一个数的次数是奇数就不做处理, 之后就要^异或一下来处理, 次数是偶数本来就要处理, 就不用说了, 这样就符合题意
  • 不过出题人,把莫队卡掉了
  • 首先可以根据异或性质 把问题转化为

 

  •  A 通过前缀思想处理
  • B通过对询问排序后处理
  • 对R进行从小到大排序
  • 问的是不同的元素异或和,而且我们的r是一直慢慢增大的
  • 所以贪心地让数放在最右边,这样在查询 L 的时候就可以把那个数包含进去, 而且 求不同的元素, 于是只需要那个一个数就行
  • 保存一个lstval所在的位置, 用于更新 val[r] 时(把元素放在右边) 删除之前的那个点, 
  • 此时查询和修改L,R的不同的元素异或, 利用 树状数组处理即可

 

以上是关于Warmup:Upanishad (吉林省赛) (异或的减法思维,排序预处理,后按顺序处理, 树状数组,贪心第把数往后面放)的主要内容,如果未能解决你的问题,请参考以下文章

第十五届吉林省赛The 15th Jilin Provincial Collegiate Programming Contest C.Random Number Generator(数学 BSGS)

A777 吉林大学ACM集训队选拔赛(重现赛)

2019年东北四省赛感想

基于ROS的机器人建图与导航仿真全过程

规格说明书-吉林市2日游

吉大正元受邀参加区块链与数字吉林建设高级研修班