Дан неориентированный связный граф, в котором $$$n$$$ вершин. У каждого ребра этого графа есть вес; вес ребра между вершинами $$$i$$$ и $$$j$$$ равен $$$w_{i,j}$$$ (или $$$w_{i,j} = 0$$$, что означает, что между $$$i$$$ и $$$j$$$ нет ребра). Все веса — положительные целые числа.
Также дано положительное целое число $$$c$$$.
Вы должны построить остовное дерево для этого графа, то есть выбрать ровно $$$(n-1)$$$ ребер графа так, чтобы можно было из любой вершины добраться до любой другой по выбранным ребрам. Стоимость остовного дерева — это сумма двух значений:
Найдите любое остовное дерево с минимальной стоимостью. Так как граф связный, у него существует хотя бы одно остовное дерево.
В первой строке заданы два целых числа $$$n$$$ и $$$c$$$ ($$$2 \le n \le 20$$$; $$$1 \le c \le 10^6$$$).
Затем следуют $$$n$$$ строк. В $$$i$$$-й из них заданы $$$n$$$ целых чисел $$$w_{i,1}, w_{i,2}, \dots, w_{i,n}$$$ ($$$0 \le w_{i,j} \le 10^6$$$), где $$$w_{i,j}$$$ — вес ребра между вершинами $$$i$$$ и $$$j$$$ (или $$$w_{i,j} = 0$$$, если такого ребра нет).
Дополнительные ограничения на входные данные:
Выведите одно целое число — минимальную стоимость остовного дерева.
4 100 1 8 01 0 1 08 1 0 20 0 2 0
21
4 50 1 8 01 0 1 08 1 0 20 0 2 0
14
В первом примере минимальное остовное дерево состоит из ребер $$$(1, 3)$$$, $$$(2, 3)$$$ и $$$(3, 4)$$$. Максимальное паросочетание относительно него равно $$$1$$$.
Во втором примере минимальное остовное дерево состоит из ребер $$$(1, 2)$$$, $$$(2, 3)$$$ и $$$(3, 4)$$$. Максимальное паросочетание относительно него равно $$$2$$$.
Название |
---|