csu 1965

本文介绍了一个关于消息在员工间传播的问题,目的是找到使特定员工得知消息所需的最小总成本。问题涉及选择部分员工告知消息,并通过他们进一步传播,同时考虑不同员工间传递消息的成本。

Description

You are a boss who has N employers. One day, you have a message and you want to tell it to M employers of yours. As you are a funny man, you want to choose some of the M employers and tell them the message, and then let them tell other employers so that all the M know the message (you don't care whether the other N − M employers know the message or not). Employers who know the message can tell it to anyone else. The ith employer telling the jth employer causes a cost of Cij and you want to know what the minimal total cost is.

Input

The input data consists of several cases. The first line contains one integer, T, indicating the number of test cases. For each test case, the first line contains two integers, N (10 ≤ N ≤ 50) and M (5 ≤ M ≤ 10), described above. The employers are numbered from 1. In the next N lines, each line contains N integers. The jth integer in the ith line is Cij (1 ≤ Cij ≤ 1000, Cii = 0, Cij = Cji). In the next line, there are 2 × M integers. The 2 × i − 1th integer is the index of the ith employer who you want to know the message. The 2 × ith is the cost for you to tell him the message. All cost values are between 1 and 1000.

Output

For each test case, print one integer in one line, W, indicating the mininal total cost.

Sample Input

1
10 5
0 42 468 501 479 706 492 605 719 668
42 0 335 170 359 146 996 903 896 300
468 335 0 725 963 282 943 154 448 36
501 170 725 0 465 828 828 293 727 895
479 359 963 465 0 962 437 383 772 704
706 146 282 828 962 0 392 422 539 812
492 996 943 828 437 392 0 717 870 323
605 903 154 293 383 422 717 0 913 334
719 896 448 727 772 539 870 913 0 674
668 300 36 895 704 812 323 334 674 0
5 142 2 54 9 148 3 158 8 60

Sample Output

558

Hint

 

 

 

 

 

 

 

现场只有一个队做出来了,想了半天没做出来。

 

 

 

 

 

 

首先是费用流,保证每个点都被访问,那么会使得所有点都有一个连到源点,汇点,那么他们的权值一定至少全被加起来了。

最短路,枚举选哪些点,跑到其他所有点,sum + dist[v],会有重复路径,还要把所有重复路径的点删掉。太难搞咯~~~

转载于:https://www.cnblogs.com/TreeDream/p/7227532.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值