二进制拆位
二进制拆位
题意:给定一个数组,求所有子区间的区间异或和的sum
Sol:先做异或前缀和,原问题则变成求数组中任意两个数的异或,然后全部相加起来的结果。我们考虑每个元素每位的贡献,只需要统计前面(偏序计数)有多少个数的本位与自己不同。
链接:https://ac.nowcoder.com/acm/contest/65051/D
小美定义一个数组的权值为:数组中任选两个数的异或之和。例如,数组[2,1,3]的权值为:(2 xor 1)+(2 xor 3)+(1 xor 3)=3+1+2=6。 小美拿到了一个数组,她想知道该数组的所有连续子数组的权值和是多少?答案对
Sol:注意题目意思。一个子数组的权值是两两异或和,那么求所有子数组的权值和。考虑继续按位算贡献,对于枚举到当前数a[i],我们计算他和每个前面的数计算的次数,当 可以和其异或产生 的贡献的时候,左端点有j个,右端点有n-i+1个,所以累加答案 .那么我们需要预处理些什么呢?当前i,k是枚举的,我们显然不能枚举j,所以我们需要提前预处理有关j的前缀和,为什么能这样做的推导 。也就是说我们需要对于每一位记录0和1的下标前缀和
https://www.luogu.com.cn/problem/CF1879D Sum of XOR Functions
有一个序列 ,计算 $\sum\limits_{l=1}{n}\sum\limits_{r=l}n(r-l+1)\times \bigoplus\limits_{i=l}^{r}a_i $。
Sol:继续考虑贡献,枚举r,拆位前缀和维护符合要求下标L之和以及L的数量。不能全部开longlong,本题空间很紧张,不然会直接MLE.由于我们我们寻找的是所有在前缀和中能当左式的,本身就是L-1了,所以原本区间长度的减1就不用考虑了。
给定一个数组,求 G. 沃托里村 - 2023 年(第十五届)四川省大学生程序设计大赛重现赛 - ECNU Online Judge
Sol:本题需要考虑平方的特性,直接拆位以后,看2的次幂的贡献,考虑指数运算法则,只需要记录00,01,10,11的对数就可以了,本题不要求偏序,直接全部考虑不用去重。
dbeug:注意乘法与取模同等优先级,从左到右算,所以需要对于出现1<<60的式子需要先打括号取模,再计算。也可以预处理2的次幂mod意义下的。
https://codeforces.com/problemset/problem/1878/E按位与的拆位前缀和
有 组数据。每组数据给定长度为 的数组 和 次询问。我们定义 表示 的结果。其中, 表示位与运算。对于每次询问,将给定 。请你找到最大的 使得 。如果无解,输出 -1
。
Sol:考虑与运算具有递减性,所以可以二分r。考虑怎么check。由于与运算不可逆,无法像异或那样快速求出按位与的区间和,我们只能预处理拆位的前缀和,然后每次花费O(logn)的时间去计算区间与和。具体就是看每一位1的个数是不搜等于区间长度,因为只要有1个0就是0了。时间复杂度:
https://vjudge.net/contest/602096#problem/E
给定一棵树,带边权,m次询问,每次给出l,r,x ,xordist为i到x上的路径异或起来。
Sol:考虑单点对单点的时候,钦定1为根不影响答案。算一下树上前缀和d[x].则答案就是d[i]^d[x].现在就是考虑多个数与一个数的异或和,我们需要在logn的时间内求出。预处理按位的0和1的数量,直接按每一位的贡献和数量计算。
非常遗憾调试失败,还要赶进度,以后再回来吧
给定一个数组,求
先用单调栈套路地得到左右边界,对于左右边界,统计左0右1地个数,左1右0个数,然后考虑拆位前缀和算贡献,思路不难,注意注意边界处理。
全局开了longlong,依然不知道wa哪里了
给一份std参考
https://ac.nowcoder.com/acm/discuss/blogs?tagId=268078
https://ac.nowcoder.com/acm/contest/80793/D
__EOF__

本文作者:爱飞鱼
本文链接:https://www.cnblogs.com/mathiter/p/18199393.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/mathiter/p/18199393.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话