Обход в глубину(100 задач)
Способы задания графа(54 задач)
Минимальный каркас(12 задач)
Потоки(21 задач)
Паросочетания(17 задач)
Эйлеров цикл(9 задач)
Деревья(16 задач)
Даны несколько точек на плоскости, некоторые из которых соединены отрезками. Множество точек называется связанным, если из любой его точки можно перейти в любую точку, перемещаясь только по отрезкам (переходить с отрезка на отрезок возможно только в точках исходного множества). Можно за определенную плату добавлять новые отрезки (стоимость добавления равна длине добавляемого отрезка). Требуется за минимальную стоимость сделать данное множество связанным.
В первой строке входных данных содержится одно целое число \(N\) (1 ≤ \(N\) ≤ 50) – количество точек. Далее в \(N\) строках записано по 2 натуральных числа – координаты точек (координаты не превышают 100). Все точки различны. Далее дано число \(M\) – количество уже существующих отрезков. В следующих \(M\) строках записаны по 2 числа – номера начала и конца соответствующего отрезка.
Вывести единственное число – минимально возможную стоимость дополнения с точностью 5 знаков после запятой.
3 1 1 1 2 10 1 1 2 1
9.0
Дан неориентированный граф без кратных ребер и петель. В нем уже содержится некоторое (возможно, нулевое) количество ребер. Можно за определенную плату добавлять в него новые ребра (плата своя для каждого ребра). Требуется за наименьшую плату сделать граф связным.
В первой строке входных данных содержится одно целое число \(N\) (1 ≤ \(N\) ≤ 50) – количество вершин в исходном графе. Далее в \(N\) строках записано по \(N\) неотрицательных целых чисел в каждой ( \(j\) -е число в \(i\) -й строке соответствует стоимости добавления ребра, соединяющего вершины \(i\) и \(j\) , 0 соответствует уже существующему ребру, положительное число – несуществующему), числа не превышают 100. Матрица симметрична.
Вывести единственное число – минимально возможную стоимость дополнения данного графа до связного.
3 0 0 5 0 0 0 5 0 0
0
Зал супермаркета имеет форму прямоугольника размером \(M\) x \(N\), в котором расставлены витрины размером 1 x 1. Стороны витрин параллельны стенам супермаркета, а расстояния от витрин до стен – целые числа.
В супермаркет привезли новую супервитрину размером \(K\) x 1 и выгрузили в одном из углов супермаркета. Требуется передвинуть ее в противоположный угол супермаркета. При этом ее нельзя поворачивать, а можно лишь передвигать параллельно
стенам супермаркета. Напишите программу, которая по плану супермаркета поможет определить, какое наименьшее количество витрин нужно убрать, чтобы передвинуть супервитрину.
В первой строке вводятся три натуральных числа \(M\), \(N\) и \(K\) (\(M\), \(N\) ≤ 100, \(K\) ≤ \(M\)). Начальное и конечное расположение супервитрины такие, как указано на верхнем рисунке. В следующей строке записано целое неотрицательно число \(V\) – количество витрин (0 ≤ \(V\) ≤ \(N\)*\(M\)). В следующих \(V\) строках входных данных содержатся различные пары целых неотрицательных чисел, характеризующие положения витрин. Первое число (от 0 до \(M\)–1) – расстояние от левой стены супермаркета до витрины, второе (от 0 до \(N\)–1) – расстояние от нижней стены до витрины (см. нижний рисунок). Гарантируется, что там, где изначально поставили супервитрину, других витрин нет.
В первой строке выведите минимальное количество витрин, которые необходимо убрать. Во второй строке выведите возможный маршрут передвижения супервитрины: одну строку из заглавных латинских букв, обозначающих следующее:
U – на 1 вверх,
D – на 1 вниз,
L – на 1 влево,
R – на 1 вправо.
Количество символов в строке не должно превышать \(N\) x \(M\).
Если возможных маршрутов несколько, то выведите любой из них.
10 10 5 0
0 RUURUURUURUURU
9 3 2 4 2 0 5 1 5 2 8 2
1 URRRDRRRRUU
В таблице из \(N\) строк и \(N\) столбцов некоторые клетки заняты шариками, другие свободны. Выбран шарик, который нужно переместить, и место, куда его нужно переместить. Выбранный шарик за один шаг перемещается в соседнюю по горизонтали или вертикали свободную клетку. Требуется выяснить, возможно ли переместить шарик из начальной клетки в заданную, и, если возможно, то найти путь из наименьшего количества шагов.
В первой строке находится число \(N\), в следующих \(N\) строках - по \(N\) символов. Символом точки обозначена свободная клетка, латинской заглавной \(O\) - шарик, \(@\) - исходное положение шарика, который должен двигаться, латинской заглавной \(X\) - конечное положение шарика. 2 <= \(N\) <= 40.
В первой строке выводится \(Y\), если движение возможно, или \(N\), если нет. Если движение возможно, далее следует \(N\) строк по \(N\) символов - как и на вводе, но буква \(X\), а также все точки по пути заменяются плюсами.
2 @. .X
Y @+ .+
2 @O OX
N
Лабиринт представляет собой квадрат, состоящий из NxN сегментов. Каждый из сегментов может быть либо пустым, либо заполненным монолитной каменной стеной. Гарантируется, что левый верхний и правый нижний сегменты пусты. Лабиринт обнесён сверху, снизу, слева и справа стенами, оставляющими свободными только левый верхний и правый нижний углы. Директор лабиринта решил покрасить стены лабиринта, видимые изнутри (см. рисунок). Помогите ему рассчитать количество краски, необходимой для этого.
В первой строке находится число \(N\), затем идут \(N\) строк по \(N\) символов: точка обозначает пустой сегмент, решётка - сегмент со стеной. 3 <= \(N\) <= 33, размер сегмента 3 x 3 м, высота стен 3 м.
Вывести одно число - площадь видимой части внутренних стен лабиринта в квадратных метрах.
4 .... .... .... ....
108
4 .... .##. .##. ....
180