给定 n 个整数:{x1,x2,…,xn}。对于每个整数 xi,如果它可以表示为恰好 k 个 2 的幂之和,则称 xi 是 k-可分的。注意,允许相同的 2 的幂重复使用。例如:
要求依次统计 k=1,2,…,30 时 k-可分整数的个数。
给定 n 个整数 x1,x2,…,xn。对于一个正整数 x,如果它能表示成恰好 k 个 2 的幂(允许相同的幂次)之和,我们就称 x 为 k-可分 的。例如 9=1+8 是 2-可分的,9=1+2+2+4 是 4-可分的。
记 pop(x) 为 x 二进制表示中 1 的个数。可以证明,x 是 k-可分的当且仅当 pop(x)≤k≤min(x,30)。注意 x=0 不参与任何可分性的统计。
现在请你对于每一个 k=1,2,…,30,计算出在给定的 n 个整数中,有多少个是 k-可分的,并按顺序输出这 30 个数量。
约束
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册