Part I Preface
Part II Sketch
- 给定一个整数 \(n\)。
- 将 \(n\) 拆分成一个数列 \(a_1,a_2,a_3,\dots,a_m\)。
- 使得 \(\sum\limits_{k = 1}^{m}a_k = n\),每个 \(a_i\in[0,9]\) 且数列中不相同的数的数量尽量少。
Part III Analysis
我们很容易想出一种方案:若干个 \(1\) 相加,不仅可以满足任何 \(n\) 的需求,还可以保证不同的数的个数最少。所以读入 \(n\),输出 \(n\) 个 \(1\) 即可。
Part IV Code
#include <bits/stdc++.h>
using namespace std;
int n;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
cout << n << '\n';
for(int i = 1; i <= n; i++) cout << '1' << ' ';
return 0;
}