『MdOI R5』Jump

Luogu
IDLGP8918
Time1000ms
Memory512MB
DifficultyP2
数学洛谷原创O2优化位运算洛谷月赛
数轴上有一个人,设他所在的位置为 $x$,初始时 $x=0$。第 $i$ 秒中他可以选择往左或往右跳 $2^{i-1}$ 单位长度,即将 $x$ 增大或减小 $2^{i-1}$。问他至少需要多少秒才能到达 $n$,即在某一秒结束的时刻使得 $x=n$。如果永远都不可能到达 $n$,那么输出 $-1$。 **本题每个测试点中有多组数据。** ## Input 第一行,一个整数,表示数据组数 $T$。 接下来 $T$ 行,每行一个整数,表示一组测试数据中的 $n$。 ## Output 共 $T$ 行,每行一个数,依次表示每组数据的答案。 [samples] ## Note 对于 $100\%$ 的数据,$1\le T\le 10^3$,$1\le n\le 10^9$。 $\operatorname{Subtask} 1(30\%)$:$n\le 100$。 $\operatorname{Subtask} 2(40\%)$:$n=2^k$,其中 $k$ 是一个非负整数。 $\operatorname{Subtask} 3(30\%)$:无特殊限制。 #### 样例说明 1 $n=1$ 时只需要在第一秒中往右跳即可。 $n=2$ 时可以证明永远都不可能到达 $n$。
Samples
Input #1
10
1
2
7
8
9
10
11
935
101
2023
Output #1
1
-1
3
-1
4
-1
4
10
7
11
API Response (JSON)
{
  "problem": {
    "name": "『MdOI R5』Jump",
    "description": {
      "content": "数轴上有一个人,设他所在的位置为 $x$,初始时 $x=0$。第 $i$ 秒中他可以选择往左或往右跳 $2^{i-1}$ 单位长度,即将 $x$ 增大或减小 $2^{i-1}$。问他至少需要多少秒才能到达 $n$,即在某一秒结束的时刻使得 $x=n$。如果永远都不可能到达 $n$,那么输出 $-1$。 **本题每个测试点中有多组数据。**",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP8918"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "数轴上有一个人,设他所在的位置为 $x$,初始时 $x=0$。第 $i$ 秒中他可以选择往左或往右跳 $2^{i-1}$ 单位长度,即将 $x$ 增大或减小 $2^{i-1}$。问他至少需要多少秒才能到达 $n$,即在某一秒结束的时刻使得 $x=n$。如果永远都不可能到达 $n$,那么输出 $-1$。\n\n**本题每个测试点中有多组数据。**\n\n## Input\n\n第一行,一个整数,表示数据组数 $...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments