题意补充
查看原帖
题意补充
1274219
TCTM_temp楼主2024/7/23 18:13

获取零值

题目描述

假设你有一个整数vv。在一次操作中,你可以:

  • 设置 v=(v+1) mod 32768v = (v + 1) \bmod 32768
  • 或设置 v=(2⋅v) mod 32768v = (2 \cdot v) \bmod 32768。

给你nn个整数a1,a2,…,ana_1, a_2, \dots, a_n。你需要进行多少次最少的操作以使每个aia_i都等于00?

输入格式

第一行包含一个整数nn (1≤n≤327681 \le n \le 32768) —— 整数的数量。

第二行包含nn个整数a1,a2,…,ana_1, a_2, \dots, a_n (0≤ai<327680 \le a_i < 32768)。

输出格式

输出nn个整数。第ii个整数应等于使aia_i等于00所需的最小操作次数。

示例 #1

示例输入 #1

4
19 32764 10240 49

示例输出 #1

14 4 4 15

提示

让我们考虑每个aia_i :

  • a1=19a_1 = 19。你可以首先将其增加1得到2020,然后将它乘以2 13次。你在1+13=141 + 13 = 14步中得到00。
  • a2=32764a_2 = 32764。你可以增加4次一:32764→32765→32766→32767→032764 \rightarrow 32765 \rightarrow 32766 \rightarrow 32767 \rightarrow 0。
  • a3=10240a_3 = 10240。你可以将它乘以2 4次:10240→20480→8192→16384→010240 \rightarrow 20480 \rightarrow 8192 \rightarrow 16384 \rightarrow 0。
  • a4=49a_4 = 49。你可以将它乘以2 15次。
2024/7/23 18:13
加载中...