CF1030E.Vasya and Good Sequences

普及+/提高

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Vasya has a sequence aa consisting of nn integers a1,a2,…,ana_1, a_2, \dots, a_n. Vasya may pefrom the following operation: choose some number from the sequence and swap any pair of bits in its binary representation. For example, Vasya can transform number 66 (…000000001102)(\dots 00000000110_2) into 33 (…000000000112)(\dots 00000000011_2), 1212 (…0000000011002)(\dots 000000001100_2), 10261026 (…100000000102)(\dots 10000000010_2) and many others. Vasya can use this operation any (possibly zero) number of times on any number from the sequence.

Vasya names a sequence as good one, if, using operation mentioned above, he can obtain the sequence with bitwise exclusive or of all elements equal to 00.

For the given sequence a1,a2,…,ana_1, a_2, \ldots, a_n Vasya'd like to calculate number of integer pairs (l,r)(l, r) such that 1≤l≤r≤n1 \le l \le r \le n and sequence al,al+1,…,ara_l, a_{l + 1}, \dots, a_r is good.

瓦西娅有一个由 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n 组成的序列 aa。瓦西娅可以执行如下操作:从序列中任选一个数,并交换其二进制表示中的任意两个比特位。例如,瓦西娅可以将数字 66(二进制为 …000000001102\dots 00000000110_2)变换为 33(…000000000112\dots 00000000011_2)、1212(…0000000011002\dots 000000001100_2)、10261026(…100000000102\dots 10000000010_2)以及其他许多数。瓦西娅可以在序列中的任意数字上,以任意次数(包括零次)执行该操作。

若瓦西娅能通过上述操作,使得序列中所有元素的按位异或结果等于 00,则他称该序列为“好序列”。

对于给定的序列 a1,a2,…,ana_1, a_2, \ldots, a_n,瓦西娅希望计算满足 1≤l≤r≤n1 \le l \le r \le n 的整数对 (l,r)(l, r) 的个数,使得子序列 al,al+1,…,ara_l, a_{l + 1}, \dots, a_r 是一个好序列。

输入格式

The first line contains a single integer nn (1≤n≤3⋅1051 \le n \le 3 \cdot 10^5) — length of the sequence.

The second line contains nn integers a1,a2,…,ana_1, a_2, \dots, a_n (1≤ai≤10181 \le a_i \le 10^{18}) — the sequence aa.

第一行包含一个整数 nn(1≤n≤3⋅1051 \le n \le 3 \cdot 10^5)——序列的长度。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(1≤ai≤10181 \le a_i \le 10^{18})——序列 aa。

输出格式

Print one integer — the number of pairs (l,r)(l, r) such that 1≤l≤r≤n1 \le l \le r \le n and the sequence al,al+1,…,ara_l, a_{l + 1}, \dots, a_r is good.

输出一个整数——满足 1≤l≤r≤n1 \le l \le r \le n 且子序列 al,al+1,…,ara_l, a_{l + 1}, \dots, a_r 是“好”的数对 (l,r)(l, r) 的个数。

输入输出样例

  • 输入#1

    3
    6 7 14

    输出#1

    2
  • 输入#2

    4
    1 2 1 16

    输出#2

    4

说明/提示

In the first example pairs (2,3)(2, 3) and (1,3)(1, 3) are valid. Pair (2,3)(2, 3) is valid since a2=7→11a_2 = 7 \rightarrow 11, a3=14→11a_3 = 14 \rightarrow 11 and 11⊕11=011 \oplus 11 = 0, where ⊕\oplus — bitwise exclusive or. Pair (1,3)(1, 3) is valid since a1=6→3a_1 = 6 \rightarrow 3, a2=7→13a_2 = 7 \rightarrow 13, a3=14→14a_3 = 14 \rightarrow 14 and 3⊕13⊕14=03 \oplus 13 \oplus 14 = 0.

In the second example pairs (1,2)(1, 2), (2,3)(2, 3), (3,4)(3, 4) and (1,4)(1, 4) are valid.

在第一个例子中,数对 (2,3)(2, 3) 和 (1,3)(1, 3) 是合法的。数对 (2,3)(2, 3) 合法,因为 a2=7→11a_2 = 7 \rightarrow 11,a3=14→11a_3 = 14 \rightarrow 11,且 11⊕11=011 \oplus 11 = 0,其中 ⊕\oplus 表示按位异或运算。数对 (1,3)(1, 3) 合法,因为 a1=6→3a_1 = 6 \rightarrow 3,a2=7→13a_2 = 7 \rightarrow 13,a3=14→14a_3 = 14 \rightarrow 14,且 3⊕13⊕14=03 \oplus 13 \oplus 14 = 0。

在第二个例子中,数对 (1,2)(1, 2)、(2,3)(2, 3)、(3,4)(3, 4) 和 (1,4)(1, 4) 是合法的。

输入解题思路,AI测评打分。不知道怎么写?

首页