CF1054D.Changing Array

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

At a break Vanya came to the class and saw an array of nn kk -bit integers a1,a2,,ana_1, a_2, \ldots, a_n on the board. An integer xx is called a kk -bit integer if 0x2k10 \leq x \leq 2^k - 1 .

Of course, Vanya was not able to resist and started changing the numbers written on the board. To ensure that no one will note anything, Vanya allowed himself to make only one type of changes: choose an index of the array ii ( 1in1 \leq i \leq n ) and replace the number aia_i with the number ai\overline{a_i} . We define x\overline{x} for a kk -bit integer xx as the kk -bit integer such that all its kk bits differ from the corresponding bits of xx .

Vanya does not like the number 00 . Therefore, he likes such segments [l,r][l, r] ( 1lrn1 \leq l \leq r \leq n ) such that alal+1ar0a_l \oplus a_{l+1} \oplus \ldots \oplus a_r \neq 0 , where \oplus denotes the bitwise XOR operation. Determine the maximum number of segments he likes Vanya can get applying zero or more operations described above.

输入格式

The first line of the input contains two integers nn and kk ( 1n2000001 \leq n \leq 200\,000 , 1k301 \leq k \leq 30 ).

The next line contains nn integers a1,a2,,ana_1, a_2, \ldots, a_n ( 0ai2k10 \leq a_i \leq 2^k - 1 ), separated by spaces — the array of kk -bit integers.

输出格式

Print one integer — the maximum possible number of segments with XOR not equal to 00 that can be obtained by making several (possibly 00 ) operations described in the statement.

输入输出样例

  • 输入#1

    3 2
    1 3 0
    

    输出#1

    5
  • 输入#2

    6 3
    1 4 4 7 3 4
    

    输出#2

    19

说明/提示

In the first example if Vasya does not perform any operations, he gets an array that has 55 segments that Vanya likes. If he performs the operation with i=2i = 2 , he gets an array [1,0,0][1, 0, 0] , because 3=0\overline{3} = 0 when k=2k = 2 . This array has 33 segments that Vanya likes. Also, to get an array with 55 segments that Vanya likes, he can perform two operations with i=3i = 3 and with i=2i = 2 . He then gets an array [1,0,3][1, 0, 3] . It can be proven that he can't obtain 66 or more segments that he likes.

In the second example, to get 1919 segments that Vanya likes, he can perform 44 operations with i=3i = 3 , i=4i = 4 , i=5i = 5 , i=6i = 6 and get an array [1,4,3,0,4,3][1, 4, 3, 0, 4, 3] .

首页