Loading

CF1017B

可以发现,若我们要得到一个新的 \(a\) 满足要求,必须要至少完成以下两种操作之一。

  • 若在第 \(i\) 位上,\(a\)\(1\)\(b\)\(0\),那么将 \(a\) 这一位变为 \(0\)

  • 若在第 \(i\) 位上,\(a,b\) 均为 \(0\),那么将 \(a\) 这一位变为 \(1\)

我们设 \(a\)\(x\)\(1\)\(y\)\(0\)。再设有 \(z\)\(a|b=0\) 的位置,\(k\)\(a=1,b=0\) 的位置。

那么,将 \(a\) 中一个 \(0\) 填成 \(1\)\(x\) 种方案,反过来为 \(y\) 种。

所以我们可以将上面操作的方案数算出,分别是 \(ky\)\(zx\)

又因为某些情况同时包含了这两种操作,会重复计算,所以要减去。

答案就是 \(ky+zx-kz\)

posted @ 2021-10-29 15:59  KnightL  阅读(41)  评论(0编辑  收藏  举报