2024牛客暑假多校训练营Day1||补题
A-Bit Common
题意
计算满足长度为$n$,每个元素小于$2^m$,且存在至少一个子序列满足按位$AND$后是$1$的序列的数量。
答案对正整数$q$取模。
数据范围
- $1\leq n,m\leq 5000$
- $1\leq q\leq 10^9$
思路
按位分析,对于一个长度为$n$的序列,序列中的数分为$k$个末尾是$1$的数和$n-k$个末尾是$0$的数。
- 末尾为$1$的数中,除末位以外的数位($m-1$位),每一位的组合是$2^k-1$种(要除去全为1的情况)。
- 末尾为$0$的数中,除末位以外数位上的取值是任意的。
- 选择哪些数是末尾$1$需要考虑组合数。
所以,总方案数是: $$ \binom{n}{k}\times (2^k-1)^{m-1}\times (2^{n-k})^{(m-1)} = \binom{n}{k}\times (2^n-2^{n-k})^{m-1} $$ 最后对$q$取模即可。