首页 > 试题广场 >

数列

[编程题]数列
小乔有一个长度为n的整数数列,最开始里面所有的值都为0小乔需要将在1…n的每一个位置填入一个大于0的正整数,得到一个新的数列,并且这个数列所有数的和不超过m小乔对这个数列会有一个喜爱度,小乔对这个数列的喜爱度为满足2<=i<=n并且a[i]=a[i-1]+1的i的个数。现在给出n,m,请你制定一种填数方案,最大化小乔对数列的喜爱度。方案可能有多种,你只需要输出任意一种即可。

输入描述:
第一行两个整数n,m。1<=n<=1e5,n<=m<=1e9。


输出描述:
一行n个整数,表示位置1…n填的数。
示例1

输入

5 9

输出

1 2 1 2 3

说明

小乔对数列的喜爱度为3,没有能使喜爱度大于3的方案了,此外1 2 3 1 2也是一个合法的方案
头像 自律
发表于 2019-09-07 08:57:29
这个题目直接枚举所能够分的段数 段数越少 那么肯定就是答案越大 那么段数枚举完了怎么分配呢首先每段肯定有个基础的长度n / i 然后还会剩下n % i 把n % i的值给补到前面的长度上去就好了这个题目还是赛后才写出来 思维僵硬QAQ #include <bits/stdc++.h> # 展开全文