编程介的小学生 2020-01-12 14:29 采纳率: 20.5%
浏览 379

Mars Life Tree 是怎么编写实现的

Problem Description
20XX, the lives, or fossils, more exactly, on the Mars, which is founded on a totally different life type to the Earth one are found by human beings. MLT, or Mars Life Tree, thought to be the breeder of all lives on the Mars is discovered as a fossil too, is proved there used to have extremely complex types of life.
There is an extremely huge MLT under the surface of the Mars, is not a real tree, but variety of carbon-based protein balls(called “node”) connected by neuron links(called “edge”), formed a tree like structure, which is peer-to-peer reachable and non-circled. However, scientist discovered that the MLT is able to grow and mutate from basically two nodes with one edge. The mutation refers that a node is able to mutate to another kind of node and, costs some energy. And the growing means that one node can reach out a new edge and grows a new node at the other end of the edge, of course spend energy. Luckily, the energy costs of every kind of mutation and growing are measured and calculated.
Since scientists found out that different shape of MLT may give a birth to different kinds of lives, they believe that the earliest two node, called roots, directly connect to an organ like a lair to bear lives, which is air-slaked and become untraceable in the fossil.
Assuming the MLT grows obeying the rule of costing least energy, your mission is find out the roots in the fossil, point out the initial status of these two nodes, and calculate the total energy may cost during the evolvement.

Input
There may be multiple test cases.
There are two integers n (n<=1000) and m (m<=10) in the first line means the counts of nodes of the MLT, and counts of kinds of nodes.
There are n integers Ki (1<=Ki<=m) in the second line, figure out that the ith node is one of kind Ki.
Then followed two integers S1, S2, (1<=S1, S2<=m), shows the type of the two nodes at the beginning.
A m*m matrix U followed, for every element Uij (Uij<100) in row i column j, refers the mutate energy cost from type i to type j.
Then there are m numbers P1 … Pm (Pi<100), Pi refers the energy cost of reaching out a new edge and node end by type i.
Then n-1 lines follows, two integers in each line x, y, (1<=x, y<=n, x≠y) means that node i and j are connected by a edge.

Output
For each test case:
One integer in the first line refers the link ID of the roots.
Second line contains one integer refers the minimal total cost growing the MLT.
Then a blank line followed.

Sample Input
3 3
1 2 3
1 1
0 1 3
1 0 1
3 1 0
1 1 3
2 3
1 2

Sample Output
2
3

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 win from 窗口最大最小化,控件放大缩小,闪烁问题
    • ¥20 易康econgnition精度验证
    • ¥15 msix packaging tool打包问题
    • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
    • ¥15 python的qt5界面
    • ¥15 无线电能传输系统MATLAB仿真问题
    • ¥50 如何用脚本实现输入法的热键设置
    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致