题目名称 | 3471. [POJ 2248]加成序列 |
---|---|
输入输出 | addition.in/out |
难度等级 | ★★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | syzhaoss 于2020-09-08加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:16, 提交:70, 通过率:22.86% | ||||
yrtiop | 100 | 0.015 s | 0.49 MiB | C++ |
增强型图元文件 | 100 | 0.026 s | 2.73 MiB | C++ |
数声风笛ovo | 100 | 0.029 s | 1.15 MiB | C++ |
增强型图元文件 | 100 | 0.029 s | 1.15 MiB | C++ |
ShallowDream雨梨 | 100 | 0.034 s | 2.73 MiB | C++ |
Harry Potter | 100 | 0.034 s | 2.73 MiB | C++ |
Theresis | 100 | 0.036 s | 1.18 MiB | C++ |
Oasiz | 100 | 0.058 s | 4.10 MiB | C++ |
xiaocai | 100 | 0.072 s | 1.72 MiB | C++ |
Oasiz | 100 | 0.073 s | 5.53 MiB | C++ |
关于 加成序列 的近10条评论(全部评论) |
---|
满足如下条件的序列 $X$(序列中元素被标号为:$1、2、3…m$)被称为“加成序列”:
$1、X[1]=1$
$2、X[m]=n$
$3、X[1]<X[2]<…<X[m-1]<X[m]$
$4、$对于每个 $k(2≤k≤m)$ 都存在两个整数 $i$ 和 $j$ ($1≤i,j≤k−1,i$ 和 $j$ 可相等),使得 $X[k]=X[i]+X[j]$。
你的任务是:给定一个整数 $n$,找出符合上述条件的长度 $m$ 最小的“加成序列”。
如果有多个满足要求的答案,只需要找出任意一个可行解。
输入包含多组测试用例。
每组测试用例占据一行,包含一个整数 $n$。
当输入为单行的 $0$ 时,表示输入结束。
对于每个测试用例,首先输入满足需求的序列最小长度,然后输出该序列,数字之间用空格隔开。
每个输出占一行。
5 7 12 15 77 0
4 1 2 4 5 5 1 2 4 6 7 5 1 2 4 8 12 6 1 2 4 5 10 15 9 1 2 4 8 9 17 34 68 77
$1\leq N\leq 100$
《算法竞赛进阶指南》