P1645.2023.10.25-秋招-第三题-塔子哥的区间异或
题目描述
塔子哥对研究区间按位或操作的不同结果感兴趣,这是一个有趣的数学领域,可以探索各种位运算的变化和应用。
塔子哥有一个数组a, 记子区间[l,r]的权值为al∣al+1∣...∣ar,即区间内所有数的按位或运算的结果。
一个长度为n的数组一共有(n+1)∗n/2个子区间, 塔子哥想知道所有子区间一共有多少个不同的权值。
输入描述
第一行一个整数 n,表示数组长度。
第二行n个整数 a1,a2,...,an,表示数组a的元素。
1≤n≤105,1≤ai≤109
输出描述
输出一个整数,表示不同的取值个数。
样例 1
输入1
3
1 2 4
输出1
6
提示
[1,1]的权值为 1
[1,2]的权值为 3
[1,3]的权值为 7
[2,2]的权值为 2
[2,3]的权值为 6
[3,3]的权值为 4
权值两两不同,共有6种取值。
原题追溯
本题等价于LeetCode 898. 子数组按位或操作