塔子哥有一把武器,初始攻击力为0。现在塔子哥面前有n个强化石,都可以用于强化该武器,每个强化石有一个强化上限ai。
具体的,如果小苯便用第i个强化石强化他的武器,那么小苯首先需要选择一个在强化上限以内的非负整数x作为强化系数,假设小苯当前武器攻击力为k,那么会变为k∣x(其中|表示按位或操作)。接着第i个强化石在使用后会失效,即无法再次使用。
考虑贪心,将每个强化石的最大值的二进制位统计一下,即记录二进制每一位在该位置上是1的石头数量。
从大到小考虑位,如果该位置有石头,那肯定至少得用到这个位(不用,后面全部位置加起来也没用了大,比如23>22+21+20)。
当这个位置有两个以上的石头,那后面的位数都可以是1,道理同上。所以能放就放,有多后面就都可以置为1。