|
1
2
下面是6个插槽的问题。 假设所有的位置都被填满了。然后,从每个插槽到 其他每个插槽可以在6 x 6矩阵中表示为:
总距离可以通过将所有数字相加并除以来计算 总数增加了36。 当槽中没有填充电杆时,可以移除整个立柱。 比如说,第二个插槽缺失。您可以删除整个第二列以 获取总和。当然,现在的总和需要除以30 不是36。
让我们来表示一列中所有数字的总和。叫它
缺少第二行时,可以将总和表示为:
幸运的是,有一个很好的求和模式,您可以表示
让我们看一下
我们称之为基数和,
模式是:
在一般情况下,
有了这些知识,如果你知道
有极点的槽的指数。这是一个
演示程序:
给定输入
输出为
|
|
2
1
我认为这可以在O(m)中完成。
这个
当您穿过每个插槽时,总距离将减少
一旦我们通过第一个极点,向右的每一步都会将项增加1(当我们离p1越远时),而当我们离所有其他极点越近时,会将项减少m-1。因此,您要重复上一步,为每个插槽添加(sum-(m-2))。 继续,直到您为每个极点添加了条件。最终你会到达中间,这个项会增加而不是减少。
对于最后一项,将最后一个极点右侧所有插槽的总和相加。然后将整个总和除以
(这是一种未经调试的算法。) |
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 1 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |