题目描述
小苯拿到了一个数组,他想知道有多少个区间 [l,r](l<r) 满足,区间内所有元素的最大公约数恰好等于它们的异或和。
在本题中,区间 [l,r] 的最大公约数即 gcd(al,al+1,⋯,ar)、区间 [l,r] 的异或和即 alxoral+1xor⋯xorar。
输入描述
每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≤T≤105) 代表数据组数,每组测试数据描述如下:
第一行输入一个正整数 n(1≤n≤2×105) 代表数组中的元素数量。
第二行输入 n 个正整数 a1,a2,…,an(1≤ai≤109) 代表数组中的元素。
除此之外,保证单个测试文件的 n 之和不超过 3×105。
输出描述
对于每一组测试数据,新起一行。输出一个整数,代表满足条件的区间数量。
样例1
输入
2
5
3 2 6 2 4
3
1 2 3
输出
3
1
说明
对于第一组测试数据,一共有三个方案:
取区间 [1,2],区间的异或和以及 gcd 均等于 1;
取区间 [2,5],区间的异或和以及 gcd 均等于 2;
取区间 [1,5],区间的异或和以及 gcd 均等于 1。
对于第二组测试数据,只有一个方案:
取区间 [2,3],区间的异或和以及 gcd 均等于 1。