atcoder#ARC156D. [ARC156D] Xor Sum 5

[ARC156D] Xor Sum 5

题目描述

長さ N N の非負整数列 A=(A1,A2,,AN) A=(A_1,A_2,\dots,A_N) 、および正整数 K K が与えられます。

1  Xi  N (1 i  K) 1\ \leq\ X_i\ \leq\ N\ (1\leq\ i\ \leq\ K) を満たす長さ K K の正整数列 X=(X1,X2,,XK) X=(X_1,X_2,\dots,X_K) NK N^K 通り考えられますが、それらすべてに対する  i=1K AXi \displaystyle\ \sum_{i=1}^{K}\ A_{X_i} のビット単位 XOR \mathrm{XOR} を求めてください。

ビット単位 XOR \mathrm{XOR} 演算とは 非負整数 A, B A,\ B のビット単位 XOR \mathrm{XOR} A  B A\ \oplus\ B は、以下のように定義されます。

  • A  B A\ \oplus\ B を二進表記した際の 2k 2^k (k  0 k\ \geq\ 0 ) の位の数は、A, B A,\ B を二進表記した際の 2k 2^k の位の数のうち一方のみが 1 1 であれば 1 1 、そうでなければ 0 0 である。

例えば、3  5 = 6 3\ \oplus\ 5\ =\ 6 となります (二進表記すると: 011  101 = 110 011\ \oplus\ 101\ =\ 110 )。
一般に k k 個の非負整数 p1, p2, p3, , pk p_1,\ p_2,\ p_3,\ \dots,\ p_k のビット単位 XOR \mathrm{XOR} は $ (\dots\ ((p_1\ \oplus\ p_2)\ \oplus\ p_3)\ \oplus\ \dots\ \oplus\ p_k) $ と定義され、これは p1, p2, p3, , pk p_1,\ p_2,\ p_3,\ \dots,\ p_k の順番によらないことが証明できます。

输入格式

入力は以下の形式で標準入力から与えられる。

N N K K A1 A_1 A2 A_2 \dots AN A_N

输出格式

答えを出力せよ。

题目大意

给定 nn 个数的数列 aa 和一个整数 kk。 对于所有长度为 kk,值域为 [1,n][1,n] 的数列 pp,求出 i=1kapi\sum _{i=1}^{k} a_{p_i} 的异或和。

2 2
10 30
40
4 10
0 0 0 0
0
11 998244353
314 159 265 358 979 323 846 264 338 327 950
236500026047

提示

制約

  • 1  N  1000 1\ \leq\ N\ \leq\ 1000
  • 1  K  1012 1\ \leq\ K\ \leq\ 10^{12}
  • 0  Ai  1000 0\ \leq\ A_i\ \leq\ 1000
  • 与えられる入力はすべて整数

Sample Explanation 1

X X として考えられるのは (X1,X2)=(1,1),(1,2),(2,1),(2,2) (X_1,X_2)=(1,1),(1,2),(2,1),(2,2) 4 4 通りであり、それぞれに対する AX1+AX2 A_{X_1}+A_{X_2} 20,40,40,60 20,40,40,60 です。よって答えは 20  40  40  60=40 20\ \oplus\ 40\ \oplus\ 40\ \oplus\ 60=40 となります。