最大化相邻元素差的总和

4

给定一个整数N。我们需要找出排列和PermutationSum,其中整数N的排列和被定义为从1到N的所有数字排列中相邻元素之差的最大和。

例如,当N=3时,答案是3。

解释:对于N=3,可能的排列方式为:

{1,2,3} 
{1,3,2} 
{2,1,3} 
{2,3,1} 
{3,1,2} 
{3,2,1} 

给定排列{1,2,3},PermutationSum的值为2,即abs(1-2)+abs(2-3)=2。

给定排列{1,3,2},PermutationSum的值为3。

给定排列{2,1,3},PermutationSum的值为3。

给定排列{2,3,1},PermutationSum的值为3。

给定排列{3,1,2},PermutationSum的值为3。

给定排列{3,2,1},PermutationSum的值为2。

因此,所有排列中PermutationSum的最大值为3。

我们需要找到N个元素的排列中的PermutationSum最大值,其中N最大为100000。

我有一个N!的解决方案。但是对于较大的N,它无法工作。


我猜这个问题可能有一个组合解决方案,而且更容易;基本上,把差异大的元素放在一起是有意义的,这样可以最大化每个加数 - 只是一个想法。 - Codor
1个回答

2
格雷厄姆·科莫德在A047838中提供了一个解决方案:答案正好是floor(N^2/2 - 1)。

能否想出所有可能导致最高总和的不同排列? - Aseem Sharan
@AseemSharan Graham Cormode在他的证明中给出了一个排列,可以得到这个和:https://oeis.org/A047838/a047838.txt。我不知道一般情况下可能还有多少其他的排列或如何列出它们。 - Charles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接