cur,存放所有以 i 结尾的子区间的融合值。cur 由两部分组成:
prev 中的每一个值 v 与 bi 做按位或,得到 v∣bi(相当于把以前缀结尾的区间延伸到 i)。cur 中的所有值添加到一个全局集合 all_values,用于去重统计。小蓝有一个长度为 n 的整数序列 b1,b2,…,bn。对于任意区间 [l,r](1≤l≤r≤n),定义其融合值为区间内所有整数的按位或运算结果。序列共有 n(n+1)/2 个不同的区间,请计算所有这些区间对应的融合值中,不同的取值有多少个。
序列的长度 n 不超过 105,序列中的每个元素均为正整数且不超过 109。
第一行包含一个整数 n(1≤n≤105),表示序列的长度。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册