BitwiseBafflement

4.2

6 votes
Bit Manipulation, Basics of Bit Manipulation, Number Theory, Math, Algorithms, Basic Programming
Problem

You are given an array A of size N. Your task is to find the number of subarrays within the given array such that:

  • The Bitwise AND of all elements in the subarray has an odd number of set bits (i.e., 1s), and
  • The Bitwise XOR of all elements in the subarray has an even number of set bits (i.e., 1s)

Note: The subarray of A is a contiguous part of the array A, i. e. the array Ai,Ai+1,....,Aj for some 1ijN.

Input format

  • The first line contains a single integer T, which denotes the number of test cases.
  • For each test case:
    • The first line contains N denoting the size of array A.
    • The second line contains N space-separated integers, denoting the elements of A.

Output format

For each test case, print the number of subarrays within the given array such that the Bitwise AND of all elements in the subarray has an odd number of set bits (i.e., 1s) and Bitwise XOR of all elements in the subarray has an even number of set bits (i.e., 1s) in a new line.

Constraints

1T1051N1061A[i]109  i[1,N]The sum of all values of N over all test cases doesn't exceed 106

 

Time Limit: 3
Memory Limit: 256
Source Limit:
Explanation

For test case 1:

  • N = 5
  • A = [14, 2, 7, 7, 4]

In the given array there are the following 5 subarrays with their AND having an even number of set bits and their XOR having an odd number of set bits:

  • [14, 2]
  • [14, 2, 7, 7]
  • [2, 7]
  • [7, 7]
  • [7, 4]

Thus, the answer is 5.

Editor Image

?