Algorithm 通过求和知道多重集合中的重复

Algorithm 通过求和知道多重集合中的重复,algorithm,set,Algorithm,Set,我得到了多重集合的大小N及其总和S。集合的元素应该是连续的,例如一个多集K有6个(N=6)元素{1,1,2,2,3},因此S=11(多集始终包含第一个N重复的自然数) 我怎样才能知道要进行的全部更改,以便不存在重复并且集合成为连续的 对于上述示例,multisetK需要进行3次更改。因此,最后集合K将变成{1,2,3,4,5,6} 我所做的是,我找到了实际的总和(即,n*(n+1)/2),然后减去给定的总和。让它成为T 然后,T=ceil(T/n),然后答案变成2*T,它在大多数情况下都有效 但

我得到了多重集合的大小
N
及其总和
S
。集合的元素应该是连续的,例如一个多集
K
有6个(
N=6
)元素
{1,1,2,2,3}
,因此
S=11
(多集始终包含第一个
N
重复的自然数)

我怎样才能知道要进行的全部更改,以便不存在重复并且集合成为连续的

对于上述示例,multiset
K
需要进行3次更改。因此,最后集合
K
将变成
{1,2,3,4,5,6}

我所做的是,我找到了实际的总和(即,
n*(n+1)/2
),然后减去给定的总和。让它成为
T

然后,
T=ceil(T/n)
,然后答案变成
2*T
,它在大多数情况下都有效

但是,我想我错过了一些案子。是否存在某种算法来知道要更改多少元素


我只得到多集的大小和总和。

正如您已经注意到的,对于给定的
N
,总和应该是
S'=N*(N-1)/2
。您得到了一些值
S

显然,如果
S'=S
答案是0



如果
S'-S为什么不试着自己做作业
{1,1,2,2,3}
不是一个集合。如果你认为它是一个集合,那么它是一个3元素集<代码> {1,2,3} < /代码>。你可能是指多重集。@Bakuriu好的……是的,我是指多重集。。。
{1, 2, ..., N-1, X}
{1, 2, ..., N-2, 1, X}
   S' - S    |  answer
-----------------------
[   0,    0] |     0
[   1,  N-1] |     1
[   N, 2N-3] |     2
[2N-2, 3N-6] |     3