P14200 朝向过去的远方

题目背景

天空很蓝。 我抬头看向它。 云朵飘过。

题目描述

在通往世界的尽头,有一条路。路上有 $n$ 个点,其中从前往后第 $i$ 个点的记忆度为 $A_i$。 抱月朝前走着。因为不想忘记太多,到点 $i$ 时,她会询问对于从 $i$ 到 $n$ 的每个点 $x$,最小的 $j$ 的值,满足 $A_j,A_{j+1},\dots,A_x$ 按位与的结果和 $A_{i},A_{i+1},\dots,A_{x}$ 按位与的结果相同。 也许是记忆力不太好,对于每个 $i$,记 $s(i)$ 为 $x=i,i+1,\dots,n$ 时对应的 $j$ 与 $i$ 的距离($|i-j+1|$)的按位异或和。请你在她走到尽头时,告诉她 $\sum\limits_{i=1}^{n}s(i) \bmod m$ 的值。 **【形式化题面】**: 给定一个长度为 $n$ 的序列 $A$。 记 $g(l,r)=(A_l\&A_{l+1}\&\dots\& A_r)$,$f(r,x)=\min\limits_{1 \le l \le r \land g(l,r)=x }^{}l$。 输出 $\sum\limits_{i=1}^{n} (\bigoplus\limits_{r=i}^{n}(i-f(r,g(i,r))+1)) \bmod m$ 的值。

输入格式

第一行两个整数 $n,m$。 第二行 $n$ 个整数 $A_i$。

输出格式

一行 $1$ 个整数表示答案。

说明/提示

今天它飘得很快,目标指向远方。 追逐着云朵的目光望向前方,樱花花瓣飞进我的视线。 对所有数据,满足 $1 \le n \le 10^6,1 \le A_i,m < 2^{30}$。 ::cute-table{tuack} |子任务编号|$n\le$|特殊性质|分值| |:-:|:-:|:-:|:-:| |#1|$10^6$|A|$\text{10pts}$| |#2|$10^3$|无|$\text{10pts}$| |#3|$10^5$|B|$\text{30pts}$| |#4|$10^6$|无|$\text{50pts}$| 特殊性质 A:$A_i$ 相同。 特殊性质 B:$1 \le A_i,m < 2^{20}$。