旅行销售人员 - 城市预算

时间:2017-06-09 15:06:35

标签: algorithm data-structures

冰淇淋工厂在世界上拥有S1,S2,...... Sn分支。销售人员必须通过每个分支机构来获取不同的产品。

  1. 当销售人员在分支1< = j< = n完成工作时,他获得Mj钱到他的预算(最初为0)
  2. 对于来自分支Sj的j <= n - 1,飞机离开到下一个分支Sj + 1,这需要花费Cj钱。
  3. 从最后一个分支,Sn,一架飞机离开第一个分支,S1,花费Cn钱。

    我们知道累积的金额Mj(从j = 1到n的sigma)等于他花费的金额Cj(从j = 1到n的sigma)。销售人员必须用他从分支机构收到的钱来支付飞机的费用。公司让销售人员决定免费开始他的旅程(他将在那里完成他的旅行)。

    如何证明总有1&lt; = j&lt; = n,以便如果销售人员从Sj开始他的旅程,他可以用他的预算完成他的旅程?

    我想到了鸽笼原则,但不能真正形成我的想法。任何其他建议也会很棒!

1 个答案:

答案 0 :(得分:1)

想想如果我们允许金额变为负数并且他会多次绕行,他将在每个城市拥有多少钱。

这笔钱将遵循一些周期性模式,期间为n。

如果我们从他资金最少的城市开始,那么这种模式将始终保持非负面状态,因此他将有足够的资金来完成这条路线。

补充说明

将S(k)定义为i的范围从0到k的Mi-Ci。 S(k)表示销售人员在从0到k之间旅行并购买下一张机票后的金额。

我们知道S(n)等于0。

设m是最小化S(x)的x的值。

然后从城市m到城市我将花费S(i)-S(m),通过施工总是大于或等于零。