#P2179. 传染病防疫(epidemic)
传染病防疫(epidemic)
【题目描述】
传染病来势汹汹,一个区域内的城镇要共同抵御疫情…… 这个区域内共有N座城镇,其中Q个城镇已经建好了防疫站,为了防疫工作的需要,每个城镇必须有公路通到至少一个防疫站,现在已有一些修好的路可以利用。修建第i个城镇到第j个城镇的公路花费cost(i,j),还有有P个城镇由于条件优越,可以花钱建防疫站。这N个城镇的人民找到了会编程的你,至少要花多少钱可以完成防疫?
【输入格式】
第1行: 3个整数 N,Q,P
下来Q行,每行一个整数Ki,表示第K个城镇已有防疫站,
下来P行,每行2个整数Ti和price_i,表示在第Ti个城镇修建防疫站的价格为price_i
以下N* N的矩阵,第i行第j列的整数 表示cost(i,j) 最后N*N的矩阵,第i行第j列的整数 第i个城镇与第j个城镇之间的道路有无情况,为0或者1,1表示已经修建好的,0表示还没有道路。
题目保证2个矩阵都是对称的(a[i,j] = a[j,i])且主对角线都为0(a[i,i]=0 , i=1..n)。
【输出格式】
1行 1个整数ans,表示最少的花费。
【输入样例】
3 1 1
1
3 1
0 3 3
3 0 5
3 5 0
0 1 0
1 0 0
0 0 0
【输出样例】
1
【样例解释】
城镇1已建好防疫站,且1-2有道路已经修好。只需在城镇3建防疫站,费用为1.
【数据范围】
对于 20% 的数据 P=0,Q=1
对于 30% 的数据 N<=10
对于100%的数据 N<=700 0<=Q,P<=N
Cost,price 均为 1~100000 间的整数,题目保证P+Q>0