ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

CF691E Xor-sequences

CF691E Xor-sequences

CF691E Xor-sequences

[10月9日的茶](Problem - 691E - Codeforces)

计数问题,只有相邻元素有约束,k很大,考虑矩阵快速幂dp

因为只有相邻元素有约束,所以转移只用看某序列最后一个元素,设 \(f[i][j]\) 为长度为 \(i\) 的序列,最后一个元素是 \(a_j\) 的个数

对于序列 \(b\) 相邻元素的 \(b_i\)\(b_{i+1}\) 的的限制只有 \(3 \mid b_i \bigoplus b_{i+1}\)

可以考虑构造矩阵 \(M\) 描述 \(a_i\)\(a_j\) 的转移关系

\(M_{ij} = 1\)\(3 \mid a_i \bigoplus a_j\)

\(M_{ij} = 0\)\(3 \nmid a_i \bigoplus a_j\)

快速幂计算 \(f[i]M^{k-1}\) 即可

代码

注意矩阵运算不满足交换律 (\(res \times qpow(M, n)\) 处)

\(\_\_ popcount((ull))\) 处要开 \(ull\) 而不能是 \(unsigned\)

返回列表