#3680. 异或平方和(origen)

异或平方和(origen)

【题目描述】

给定 nn 个整数 a1,a2,⋯ ,ana_1, a_2, \cdots, a_n,求

$$\sum_{i=1}^{n} \sum_{j=i}^{n} \left( \bigoplus_{k=i}^{j} a_k \right)^2 \mod 998244353 $$

其中 ⊕\oplus 表示按位异或运算。 注:$\bigoplus_{k=i}^{j} a_k = a_i \oplus a_{i+1} \oplus \cdots \oplus a_j$。

【输入格式】

从文件 origen.in 中读入数据。 第一行,一个整数 nn。 第二行,nn 个整数,第 ii 个整数表示 aia_i。

【输出格式】

输出到文件 origen.out 中。 一行一个整数,表示上式对 998244353 取模的结果。

【样例 1 输入】

3
1 2 3

【样例 1 输出】

24

【样例 2 输入】

6
1 1 4 5 1 4

【样例 2 输出】

202

大样例

【数据范围】

  • 对于 10% 的数据,n≤400n \le 400;
  • 对于 30% 的数据,n≤3000n \le 3000;
  • 对于另外 10% 的数据,ai∈{0,1}a_i \in \{0, 1\};
  • 对于 100% 的数据,n≤2×105n \le 2 \times 10^5,0≤ai≤2×1050 \le a_i \le 2 \times 10^5。