有向直线m中值问题C语言c++编写(动态规划)

问题描述:给定一条有向直线L以及L上的n+1个点x0 < x1 <...< xn。有向直线L上的每个点都有一个权  w(xi);每条有向边(xi,xi-1)也都有一个非负边长d(xi,xi-1)。有向直线L上的每个点xi可以看作  客户,其服务需求量为w(xi)。每条边(xi,xi-1)的边长d(xi,xi-1)可以看作运输费用。如果在点  xi处未设置服务机构,则将点xi处的服务需求沿有向边转移到点xj处服务机构需付出的服务转  移费用为w(xi)*d(xi,xj)。在点x0处已设置了服务机构,现在要在直线L上增设k处服务机构,  使得整体服务转移费用最小。
编程任务:对于给定的有向直线L,编程计算在直线L上增设k处服务机构的最小服务转移费用。
数据输入:由文件input.txt给出输入数据。第1行有1个正整数n,表示有向直线L上除了点x0外还有n个点 x0 < x1 <…< xn 。接下 来的n行中,每行有2个整数。第i+1行的2个整数分别表示w(x n-i-1)和d(xn-i-1,xn-i-2)。
结果输出:将计算的最小服务转移费用输出到文件input.txt。