#P2248. Addition Chains
Addition Chains
题目描述
一个用于的加法链是一个满足以下四个条件的整数序列:
- 对于每个(),存在两个(不一定不同的)整数和(),使得。
给定一个整数,你的任务是构造一个长度最短的加法链。如果有多个这样的序列,输出任意一个即可。
例如,当要求为构造加法链时,和都是有效的解。
输入格式
输入包含一个或多个测试用例。每个测试用例占一行,包含一个整数()。输入以结束。
输出格式
对于每个测试用例,输出一行,包含所需的整数序列。数字之间用一个空格隔开。
提示:这个问题对时间要求较高,因此请适当使用剪枝条件以减少搜索空间。
样例输入
5
7
12
15
77
0
样例输出
1 2 4 5
1 2 4 6 7
1 2 4 8 12
1 2 4 5 10 15
1 2 4 8 9 17 34 68 77