- •Лабораторная №4 Алгоритмы на графах
- •Все цепи
- •Кратчайший путь
- •Индивидуальные задания
- •Компоненты связности
- •Длинный путь
- •Расстояние
- •Охотники
- •Изолированные города
- •Все дороги
- •Линия электропередач
- •Два города
- •Формат входного файла
- •Формат выходного файла
- •Два не связанных города
- •Три города
- •Соседние города
- •Удаленные города
- •Новые требования
- •Три города
- •Домино - 2
- •Система дорог
- •Ближайшие города
- •Формат входного файла
- •Формат выходного файла
- •Расстояние между двумя ближайшими
- •Все дороги
- •27. Удаленные города
- •Три города
- •Расстояние
- •30. Путь в ближайший
Кратчайший путь
Дан неориентированный граф. Для него вам необходимо найти кратчайшее расстояние от одной заданной вершины до другой.
Входные данные
В первой строке входного файла три числа: N, M, S и F (1≤N≤100; 1≤ S, F≤N), где N - количество вершин графа, M – количество ребер, S - начальная вершина, а F - конечная. В следующих M строках заданы по 3 числа, номера вершин и расстояние между ними.
Выходные данные
В первой строке вывести искомое расстояние или -1, если пути между указанными вершинами не существует. Во второй строке маршрут.
Пример
Input.txt |
Output.txt |
4 4 1 4 1 2 6 1 3 2 2 3 3 2 4 5 |
10 1 3 2 4 |
Индивидуальные задания
Кратчайший путь. Даны N городов и связи между ними в виде матрицы смежности. Требуется найти минимальное количество пересадок между двумя городами.
Входные данные
Во входном файле записано сначала число N - количество городов (1≤N≤100). Затем записана матрица смежности (0 обозначает отсутствие связи, 1 - наличие связи). Затем записаны номера городов - начальной и конечной.
Выходные данные
В выходной файл выведите одно число - количество пересадок. Если пути нет – вывести -1.
Пример
-
input.txt
output.txt
5
0 1 0 0 1
1 0 1 0 0
0 1 0 0 0
0 0 0 0 0
1 0 0 0 0
3 5
3
Компоненты связности
В неориентированном графе посчитать количество компонент связности. В графе нет петель и кратных ребер.
Формат входного файла
Во входном файле записаны сначала два числа N и M, задающие соответственно количество вершин и количество ребер (1≤N≤100, 0≤M≤10000), а затем перечисляются ребра. Каждое ребро задается номерами вершин, которые оно соединяет.
Формат выходного файла
В выходной файл выведите одно число – количество компонент
связности.
Примеры
input.txt |
output.txt |
3 3 1 2 1 3 2 3 |
1 |
5 3 1 2 2 3 2 4 |
2 |
5 0 |
5 |
Минимальный путь. В доме N комнат. Связи между комнатами заданы в виде матрицы смежности. Николай находится в комнате с номером S, Виктор – в комнате P. Сколько комнат посетит Коля, чтобы найти Виктора (включая комнату Виктора). Гарантируется, что путь существует.
Входные данные
Во входном файле записано сначала число N - количество комнат (1≤N≤100). Затем записана матрица смежности (0 обозначает отсутствие связи, 1 - наличие связи). Затем записаны номера комнат - Николая и Виктора.
Выходные данные
В выходной файл выведите одно число - количество посещенных комнат.
Пример
-
input.txt
output.txt
5
0 1 0 1 0
1 0 1 0 0
0 1 0 1 0
1 0 1 0 0
0 0 0 1 0
1 5
2
