『湖南省队集训』辣鸡提答题

题目

问题描述

这是一道辣鸡提答题,传统题不会做的人不要激动,希望大家不要全程做提答题。

你有一个序列${s_i}$,满足$s_1 = 1$,且对于所有$x > 1$,存在$y \leq x - 1$,使得$sx = s{x - 1} + s_y$。

给定$k$,现在要你构造一个长度为$n$的序列使得$s_n = k$,并且$n$要求尽量小。

输入格式

所有输入数据tidati1.in~tidati10.in已在试题目录下。

一行一个正整数$k$, 含义如题意中所述。

输出格式

针对给定的$10$个输入文件tidati1.in~tidati10.in,你需要分别提交你的输出文件tidati1.out~tidati10.out

第一行输出$n$,表示序列的长度。

接下来一行$n - 1$个正整数给出这个序列的生成规则,其中第$i$个数$j$表示$s_{i + 1} = s_i + s_j$。请注意按照题意$j \leq i$。

你输出的序列应满足$s_n = k$。

样例输入

7

样例输出

7
1 1 1 1 1 1

样例说明 1

你也可以输出:

5
1 1 1 3

这个输出比样例输出要优。

如何检测你的输出

如果你的输出不合法,则直接判$0$分,所以请仔细检查输出是否合法。

在试题目录下给出了$10$个判分文件tidati1.scores~tidati10.scores。每个判分文件均有$10$行$10$个单调递减的正整数,第$i$行的数表示如果要获得至少$i$分,$n$至多可以是多少。

注意最后一行的数不一定是最优解,只要你输出的𝑛不超过这个数即可获得该测试点的满分,更优的答案也不能多得分。

文章目录
  1. 1. 题目
    1. 1.1. 问题描述
    2. 1.2. 输入格式
    3. 1.3. 输出格式
    4. 1.4. 样例输入
    5. 1.5. 样例输出
    6. 1.6. 样例说明 1
    7. 1.7. 如何检测你的输出
,