编程介的小学生 2019-08-26 21:58 采纳率: 20.5%
浏览 137

C语言解答, Sisters

Problem Description
Mikoto(Railgun) is an excellent ESP(Extra Sensory Perception) girl with the dreadful skill Railgun in Academy City.

But there is a bitter reality that Mikoto's sisters are being massacred by Yuriko(Accelerator) for experiments.

As Yuriko is the most powerful ESPer, what Mikoto can do is to destroy all related laboratories in Academy City to delay the massacre.

N Laboratories are connected by M wires and the power system can be considered to an undirected graph.

Academy City is divided into several districts.

If there are at least two non-intersecting paths between two laboratories, then the two cities belong to the same district.

Two paths are considered as non-intersecting paths if and only if there is no same edge in both of them.

If there are one wire connecting two laboratories of two different districts, then the two districts are neighbors. Power can be transported between neighbor districts.

Mikoto can destroy all laboratories in the district where she is by the Railgun, that costs K+X(X is the numbers of laboratories in this district) points energy. Mikoto can use the Railgun anywhere and any number of times.

What's more, Mikoto generates electricity at the same time she shoot the Railgun. Mikoto can use the power to destroy all laboratories in other districts via wires. For any district to be attacked by electricity, the cost is f(n) points energy, and n is the number of districts (excluding the district where Mikoto shoot the Railgun) in the path from Mikoto to it. More specifically, if Mikoto have shot the Railgun destroying all laboratories in the district she chose, she can choose several other districts to be attacked by electricity she generate and the cost for each district is described above.

Now, the problem is the mininum cost to destroy all laboratories.

Input
There are several test cases.

For each test case, the first line contains three integers, N(1 ≤ N ≤ 1000), M(1 ≤ M ≤ 1000000), K(1 ≤ K ≤ 1000000000).
Then, 2 to M + 1 lines, each line contain two different integers a and b (1 ≤ a,b ≤ N), meaning that there is a undirected wire between laboratories a and b.

Then, the M + 2 lines contain N-1 number, meaning f(1), f(2), ... , f(n - 1). (0 ≤ f(1) ≤ f(2) ≤ ... ≤ f(N - 1) ≤ 1000000000)

You can safely assume that all numbers in the input and output will in the range of 32-bit signed integer and all the laboratories are connected by wires.

Input is terminated by EOF.

Output
For each test case, output one single number which is the mininum cost to destroy all laboratories.

Sample Input
5 5 10
1 2
1 3
2 3
1 4
2 5
5 10 15 20
5 4 10
2 1
3 2
4 1
5 3
4 9 11 12

Sample Output
23
34

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 基于卷积神经网络的声纹识别
    • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
    • ¥100 为什么这个恒流源电路不能恒流?
    • ¥15 有偿求跨组件数据流路径图
    • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
    • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
    • ¥15 CSAPPattacklab
    • ¥15 一直显示正在等待HID—ISP
    • ¥15 Python turtle 画图
    • ¥15 stm32开发clion时遇到的编译问题