题解:CF1957B A BIT of a Construction2024年4月22日 · 阅读需 2 分钟lailaiBlogger原题链接 洛谷 CF1957B A BIT of a Construction 题意简述 构造长度为 nnn 的数列 aaa(ai≥0a_i\ge 0ai≥0),满足 ∑ai=k\sum a_i=k∑ai=k,且让数列 aaa 按位或结果的二进制 111 的个数最多。 解题思路 把第 iii 位变成 111 的代价为 2i2^i2i,显然越低位代价越小,所以要让低位尽可能变成 111。 从低到高遍历第 iii 位,如果能变成 111,就让 a1a_1a1 加上 2i2^i2i。 剩下 k−a1k-a_1k−a1 没用了,不妨全都放到 a2a_2a2 上,然后让其他 ai=0a_i=0ai=0(3≤i≤n3\le i \le n3≤i≤n)。 特别地,当 n=1n=1n=1 时,a1a_1a1 只能等于 kkk。 参考代码