挺有意思的,大概 2100~2300 吧。
考虑任意时刻数的形式必然为 \(a,a,b\) 或者 \(a,a,a\),分类讨论。
若当前形式为 \(a,a,b\)。
-
若 \(array_i\oplus b=a\),则可以变成 \(a,b,b\) 或者 \(a,a,a\)。
-
否则,只能变成 \(a,a,b\oplus array_i\)。
若当前形式为 \(a,a,a\)。此时必然是变成 \(a,a,b\) 的形式。
根据上面的情况,不难设计 \(f_i\) 代表考虑 \(i\rightarrow n\),形式为 \(a,a,a\),最后有多少种方案。考虑转移,此时我们需要一个更充足的刻画。
考虑什么时候会出现 \(a,a,b\rightarrow a,a,a/a,a,b\) 的形式,令 \(s\) 为异或前缀和,则有 \(a\oplus s_j\oplus s_{i-1}=a\),不难发现 \(s_j=s_{i-1}\),因此一个转移就是找到某个 \(j\) 满足该条件,然后 \(f_i\leftarrow f_{j+1}\)。但是这样无法刻画 \(a,a,b\) 这种形式,考虑其组合意义,实际上等价于在 \(j\) 处发生 \(a,a,a\rightarrow a,a,b\) 的变换,太晚了不想写了,转移就是:
\[f_i=3\times (f_{j+1}+\dfrac{2}{3}f_j)
\]