yukicoder-3

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

{{{
#!html
<script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});</script>
<script type="text/javascript" async src="http://10.71.10.90/sfiction/tool/MathJax/MathJax-master/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<style>
.input, pre {
    display: block;
    padding: 9.5px;
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.42857143;
    color: #333;
    word-break: break-all;
    word-wrap: break-word;
    background-color: #f5f5f5;
    border: 1px solid #ccc;
    border-radius: 4px;
}
</style>
}}}

== [https://yukicoder.me/problems/no/3 No.3 ビットすごろく] ==

=== Description ===

{{{
#!html
<p>有$N$个格子从做往右排成一行,如果你在第$i$个格子,令$x$是$i$二进制表示中$1$的个数,那么你可以跳到第$i \pm x$个格子去。你不能跳到$1$左边,也不能跳到$N$右边,求从$1$到$N$最少要跳的次数。</p>
}}}

=== Input ===

{{{
#!html
<p class="input">
$N$
</p>

<p>$1 \le N \le 10000$</p>
}}}

=== Output ===

{{{
#!html
<p>输出最少步数,如果不能到达的话输出$-1$。</p>
}}}

=== Sample ===

==== Sample 1 ====
输入
{{{
#!html
<pre>
5
</pre>
}}}
输出
{{{
#!html
<pre>
4
</pre>
}}}

==== Sample 2 ====
输入
{{{
#!html
<pre>
11
</pre>
}}}
输出
{{{
#!html
<pre>
9
</pre>
}}}

==== Sample 3 ====
输入
{{{
#!html
<pre>
4
</pre>
}}}
输出
{{{
#!html
<pre>
-1
</pre>
}}}

No.3 ビットすごろく

Description

有$N$个格子从做往右排成一行,如果你在第$i$个格子,令$x$是$i$二进制表示中$1$的个数,那么你可以跳到第$i \pm x$个格子去。你不能跳到$1$左边,也不能跳到$N$右边,求从$1$到$N$最少要跳的次数。

Input

$N$

$1 \le N \le 10000$

Output

输出最少步数,如果不能到达的话输出$-1$。

Sample

Sample 1

输入

5

输出

4
Sample 2

输入

11

输出

9
Sample 3

输入

4

输出

-1