NKOJ4810 Bill的挑战 [状态压缩]

NKOJ4810 Bill的挑战 [状态压缩]

NKOJ4810 Bill的挑战 [状态压缩]_第1张图片

如果只设定一个状态f[i]表示刚好有i个字符串匹配的字符串个数,会发现这样的状态是推不走的。所以设定状态f[i][s]表示前i个字符都匹配的字符串集合为s的方案数。

预处理数组g[i][j]表示N个字符串中第i位字母为j(0-‘a’, 1-‘b’…)的集合。

可以得到:f[i+1][s&g[i+1][j]]=sigma{ f[i][s] }

答案是f[Len][s](s中有k个1)。

你可能感兴趣的:(题解,豪华套餐,状态压缩)