问题描述: |
给定一棵有向树T,树 T中每个顶点u都有一个权 w(u);树的每条边(u,v)也都有一个非负边长 d(u,v)。 有向树T的每个顶点 u 可以看作客户, 其服务需求量为w(u)。 每条边(u,v)的边长 d(u,v) 可以看作运输费用。如果在顶点u 处未设置服务机构,则将顶点u 处的服务需求沿有 向树的边(u,v)转移到顶点v处服务机构需付出的服务转移费用为w(u)*d(u,v)。树根处已设置 了服务机构,现在要在树T中增设 k处服务机构,使得整棵树T 的服务转移费用最小。 |
|
编程任务: |
对于给定的有向树T,编程计算在树T中增设 k处服务机构的最小服务转移费用。 |
|
数据输入: |
由文件input.txt给出输入数据。第1 行有 2个正整数n和 k。n表示有向树T 的边数;k是要增 设的服务机构数。有向树T的顶点编号为0,1,…,n。根结点编号为 0。接下来的n行中, 每行有表示有向树T的一条有向边的 3个整数。第i+1行的 3 个整数 wi,vi,di分别表示编号为i 的顶点的权为wi,相应的有向边为(i, vi),其边长为di。 |
|
结果输出: |
将计算的最小服务转移费用输出到文件output.txt。 |
|
样例:< |
【dp】有向树k中值问题
最新推荐文章于 2022-10-20 22:10:09 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)