因为我们要使得差值的数不同的尽可能多,那么就是去考虑差值 1, 2, 3, ... 为多少。
那么 a1 必然为 1 ,a2=a1+1, a3=a2+2,...ai=ai−1+i ,直到 ai=ai−1+i>U 停止。此外,你还要保证后续的每个差值都至少为 1 。
所以 ai=ai−1+i 需要保证:
你正在为一个编码系统设计一个特殊的严格递增正整数序列。你希望这个序列相邻两项的差值尽可能多样化,以增加信号的辨识度。
具体来说,给定序列长度 L 和序列中元素的上限 U,你需要构造一个长度为 L 的严格递增整数序列 x1,x2,…,xL,满足 1≤x1<x2<⋯<xL≤U。记相邻差值 di=xi+1−xi(1≤i<L)。你的目标是使集合 {d1,d2,…,dL−1} 中不同值的数量尽可能大。如果有多种构造方法,输出任意一种即可。
限制条件:序列长度 L 和元素上限 U 满足 1≤L≤U≤105。
输入只有一行,包含两个整数 L 和 U,分别表示序列的长度和元素的上限。保证 1≤L≤U≤105。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.