首页 > 其他分享 >异或笔记

异或笔记

时间:2022-09-22 11:02:00浏览次数:74  
标签:le 01Trie sum 个数 笔记 贡献 异或

异或

异或基本性质

  1. 交换律:a ^ b=b ^ a
  2. 结合律:a ^ (b ^ c) = (a ^ b) ^ c
  3. 自反律:a ^ a = 0

异或题型总结

01Trie

概述:使用01Trie的题目,大多涉及某个数和某个数异或后满足某些条件。

界外科学

套路题。

观察到 \(1\le n \le 36\) ,想到可以用折半搜索将前半边和后半边的所有满足度以及对应的总价值预处理出来,问题转化为如何找出两个总价值异或后小于等于 \(m\),并且价格最大。

可以将前面的异或值放到01Trie上,用树形DP预处理出每个节点的子树内最大总价值是多少。

设 \(p_m\) 表示 \(m\) 的当前位,\(p_x\) 表示 \(x\) 的当前位(枚举右半边的所有值)。

  1. \(p_m=p_x=1\) ,将01Trie上\(1\)的分支的dp值计入,因为\(1\oplus1 < 1\),所以右边的必然满足条件。
  2. \(p_m=p_n=0\) ,往左边走,不计入贡献。
  3. \(p_m=1,p_n=0\) , 将\(0\)的分支计入贡献,往右走。
  4. \(p_m=0,p_x=1\) ,往右走,不计入贡献。

最长异或路径

由于是找两个节点进行异或,所以想到用01Trie。

寻找最长异或路径,可以利用异或的自反性,即:\(x\sim y=(1\sim x) \oplus(1\sim y)\)

所以预处理出1到所有节点的异或值,边 \(insert\) 边查询即可。


拆位

概述:对于一堆堆的异或,我们通常考虑每一位的贡献。

异或序列

先用前缀和将式子简化为:\(\sum_{1\le i\le j\le N}s_j\oplus s_{i-1}\)

即:\(\sum_{i=1}^{n}\sum_{j=0}^{i-1}s_i \oplus s_j\)

考虑每一位的贡献。

式子的实际含义就是求出一个区间内有多少对数异或值为1,显然:0的个数 \(\times\) 1的个数。

接着乘上这一位的贡献即可。


CF242E XOR on Segment

考虑每一位的贡献。

对一个区间求和,本质上是将每一位1的个数进行贡献。

所以我们记录 \(f(l,r,k)\) 表示区间 \([l,r]\) 第 \(k\) 位 \(1\) 的个数。

考虑如何实现异或操作。

如果当前位是1,那么一个区间内1变成0,0变成1,即:\(f(l,r,k)=(r-l+1)-f(l,r,k)\)


[TJOI2017] 异或和

题目要求所有和的异或值,先做一个前缀和(记作 \(s(i)\))。

考虑每一位的贡献。

我们需要找出 \(s(i)-sm(j-1)\) 该位上 \(1\) 的个数是奇数还是偶数,那么如何在该位上减出1呢?分情况讨论:

  1. \(s(i)=s(j)=0\) ,后面位:\(s(i)<s(j)\)
  2. \(s(i)=1,s(j)=0\) ,后面位:\(s(j)\le s(i)\)
  3. \(s(i)=0,s(j)=1\) ,后面位:\(s(i) \le s(j)\)

由于 \(\sum_{i=1}^{n} a_i \le 10^6\) ,所以可以用权值树状数组。

标签:le,01Trie,sum,个数,笔记,贡献,异或
From: https://www.cnblogs.com/zhangyuzhe/p/16718438.html

相关文章

  • 【学习笔记】KMP字符串匹配
    字符串匹配——KMP算法给定两个字符串s1和s2,询问s2在s1中出现的位置(定义为出现时的第一个字符在s1中的位置)暴力枚举看到字符串匹配(如果你还不会KMP/Hash的话),八成是......
  • Jenkins 20220921笔记本1
                            ......
  • 【笔记】P1606 [USACO07FEB]Lilypad Pond G 及相关
    题目传送门建图首先,根据题目,可以判断出这是一道最短路计数问题。但是要跑最短路,首先要用他给的信息建图,这是非常关键的一步。根据题意,我们可以想出以下建图规则:起点......
  • MAUI学习笔记(五)-MVVM模式
    一、为什么使用MVVM模式:  MVVM模式有助于将应用程序的业务和表示逻辑与用户界面(UI)清晰分离。保持应用程序逻辑和UI之间的清晰分离有助于解决许多开发问题,并使......
  • 学习笔记273—解决linux系统挂载盘Read-only file-system问题
    问题描述笔记本电脑装的双系统,windows10+ubuntu18.04。不知道啥时候,挂载的windowsD盘和E盘无法写入,即不能创建文件和文件夹,也不能对文件进行操作,提示错误“Read-onlyfil......
  • 广义二项级数与广义指数级数学习笔记
    广义二项级数与广义指数级数广义二项级数定义定义广义二项级数如下:\[\mathcalB_t(z)=z\mathcalB_t^t(z)+1\tag{1}\]记\(F(z)=\mathcalB_t(z)-1\),那么有\(F(z)=z(......
  • Javaweb学习笔记第十弹
    本章存在的意义,大概就是为了回顾一下被遗忘不久的html了HTML:超文本标记语言(不区分大小写,语法较为松散,但建议书写时规范一些)HTML标签由浏览器来解析标签展示图片具体详......
  • vue学习笔记(二):vue目录结构,及vue组件和用法
    一、目录结构: 二、vue组件:  项目目录中的app.vue是一个顶级组件,可以删除里面的代码,然后来重新写:  注意:<template>标签下面只能有一个根元素,也就是说下面的写......
  • for 循环学习笔记
              定义遍历是指通过某种顺序对一个数据结构中的所有元素进行访问。隐喻遍历就像点名,需要有顺序地对所有成员进行一次“查询”。  ......
  • 图像处理学习笔记-02-数字图像基础
    第一节简述人类视觉系统的一些重要方面,包括人眼中图像的生成及人眼适应和辨认灰度的一些能力,第二节讨论光、电磁波谱的其他分量及他们的成像特点,第三节讨论成像传感器及如......