A6075 | 「CQOI2018」九连环
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
九连环是一种源于中国的传统智力游戏。如图所示,九个圆环套在一把“剑”上,并且互相牵连。游戏的目标是把九个圆环从“剑”上卸下。

圆环的装卸需要遵守两个规则。
1. 第一个(最右边)环任何时候都可以装上或卸下。
2. 如果第 $k$ 个环没有被卸下,且第 $k$ 个环右边的所有环都被卸下,则第 $k+1$ 个环(第 $k$ 个环左边相邻的环)可以任意装上或卸下。
与魔方的千变万化不同,解九连环的最优策略是唯一的。为简单起见,我们以“四连环”为例,演示这一过程。这里用 ``
初始状态为 ``
1. ``
2. ``
3. ``
4. ``
5. ``
6. ``
7. ``
8. ``
9. ``
10. ``
由此可见,卸下“四连环”至少需要 $10$ 步。随着环数增加,需要的步数也会随之增多。例如卸下九连环,就至少需要 $341$ 步。
请你计算,有 $n$ 个环的情况下,按照规则,全部卸下至少需要多少步。

圆环的装卸需要遵守两个规则。
1. 第一个(最右边)环任何时候都可以装上或卸下。
2. 如果第 $k$ 个环没有被卸下,且第 $k$ 个环右边的所有环都被卸下,则第 $k+1$ 个环(第 $k$ 个环左边相邻的环)可以任意装上或卸下。
与魔方的千变万化不同,解九连环的最优策略是唯一的。为简单起见,我们以“四连环”为例,演示这一过程。这里用 ``
1` 表示环在“剑”上, `0`` 表示环已经卸下。 初始状态为 ``
1111`` ,每部的操作如下: 1. ``
1101`` (根据规则 $2$ ,卸下第 $2$ 个环)2. ``
1100`` (根据规则 $1$ ,卸下第 $1$ 个环)3. ``
0100`` (根据规则 $2$ ,卸下第 $4$ 个环)4. ``
0101`` (根据规则 $1$ ,装上第 $1$ 个环)5. ``
0111`` (根据规则 $2$ ,装上第 $2$ 个环)6. ``
0110`` (根据规则 $1$ ,卸下第 $1$ 个环)7. ``
0010`` (根据规则 $2$ ,卸下第 $3$ 个环)8. ``
0011`` (根据规则 $1$ ,装上第 $1$ 个环)9. ``
0001`` (根据规则 $2$ ,卸下第 $2$ 个环)10. ``
0000`` (根据规则 $1$ ,卸下第 $1$ 个环)由此可见,卸下“四连环”至少需要 $10$ 步。随着环数增加,需要的步数也会随之增多。例如卸下九连环,就至少需要 $341$ 步。
请你计算,有 $n$ 个环的情况下,按照规则,全部卸下至少需要多少步。
输入格式
输入第一行为一个整数 $m$ ,表示测试点数目。
接下来 $m$ 行,每行一个整数 $n$ 。
接下来 $m$ 行,每行一个整数 $n$ 。
输出格式
输出共 $m$ 行,对应每个测试点的计算结果。
输入输出样例
输入 #1
3 3 5 9
输出 #1
5 21 341
对于 $10\%$ 的数据, $1 \le n \le 10$ 。
对于 $30\%$ 的数据, $1 \le n \le 30$ 。
对于 $100\%$ 的数据, $1 \le n \le 10^5 , 1 \le m \le 10$ 。
对于 $30\%$ 的数据, $1 \le n \le 30$ 。
对于 $100\%$ 的数据, $1 \le n \le 10^5 , 1 \le m \le 10$ 。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?