关于取值连续的理解
查看原帖
关于取值连续的理解
215368
Easy_revenge楼主2021/11/8 23:12

设我们枚举的系数为 kk,题目等价于判断 nk×pn-k\times p 能否被拆成 kk22 的次方数之和。结论是需满足 pop_count(nk×p)knk×p\text{pop\_count}(n-k\times p)\le k\le n-k\times p。那么这段区间内的取值一定都能被取到吗?

首先下界是显然的。将 nk×pn-k\times p 写成二进制形式,记其中为 11 的位数总数为 pop_count(nk×p)\text{pop\_count}(n-k\times p),那么你至少需要这么多个二进制数相加。

那么如果这些数不够多怎么办?我们任选其中一个二进制数 2x2^x,将其拆作 2x1+2x12^{x-1}+2^{x-1},就可以使数的总数增加 11。但我们不能无限地拆下去,当且仅当我们把这些数都拆成了 11,总共 nk×pn-k\times p11 时,不能继续拆下去了。故上界为 nk×pn-k\times p,并且区间的取值是连续的。

2021/11/8 23:12
加载中...