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
重复的自然数)
我怎样才能知道要进行的全部更改,以便不存在重复并且集合成为连续的
对于上述示例,multisetK
需要进行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