A1038

Задача: Имеется [latex]n [/latex] городов. Некоторые из них соединены дорогами известной длины. Вся система дорог задана квадратной матрицей порядка  [latex]n [/latex], элемент [latex]a_{ij} [/latex] который равен некоторому отрицательному числу, если город [latex]i [/latex] не соединен напрямую дорогой с городом [latex]j [/latex] и равен длине дороги в противном случае latex [/latex].

  1. Для 1-го города найти кратчайшие маршруты в остальные города.
  2. В предположении, что каждый город соединен напрямую с каждым, найти кратчайший маршрут, начинающийся в 1-м городе и проходящий через все остальные города.

Входные данные:

4
-1 2 4 -1
2 -1 1 6
4 1 -1 1
-1 6 1 -1

Выходные данные:

1 > 2 = 2

1 > 3 = 3

1 > 4 = 4

Длина кратчайшей цепи, проходящей через все вершины 4

Ссылка на ideone: http://ideone.com/iXjoLZ

Решение:

Алгоритм: Для решения задачи применим алгоритм Дейкстры. Применяя этот алгоритм мы считаем что у нас нету ребер с отрицательным весом. Если вес ребра отрицательный, то его просто не существует (по условию задачи). Вводим матрицу смежности графа и проверяем является ли граф полным (для задания 2). Если граф является полным, то ищем для каждой вершины инцидентное ребро с минимальным весом и суммируем (задание 2). В цикле каждой вершине присваиваем минимально расстояние до нее от первой вершины и записываем в массив (задание 1).

A711a

Задача: Дана матрица [latex]A [/latex] размера [latex]m\times m [/latex]. Получить матрицу  [latex]AA^{*} [/latex] (ее размер [latex]m\times m [/latex]).

Входные данные:

4
1 2 3 4
5 6 7 8
9 0 1 2
3 4 5 6

Выходные данные:

30 70 20 50
70 174 68 122
20 68 86 44
50 122 44 86

Решение:

Ссылка на ideone С++: http://ideone.com/iXjoLZ

Ссылка на ideone Java: http://ideone.com/u96MDY

 

Вводим матрицу [latex]A[i][j] [/latex] и матрицу [latex]B[j][i] [/latex] в цикле по [latex] i,j[/latex] от одного до [latex] n[/latex]. Умножаем матрицу  [latex] A[/latex] на [latex]A^{*} [/latex].

 

e-olymp 5076. Регулярный граф

Задача 5076: Неориентированный граф называется регулярным, если все его вершины имеют одинаковую степень. Для заданного списком ребер графа проверьте, является ли он регулярным.

Входные данные

Входной файл содержит числа [latex]n(1 \leq n \leq 100) [/latex] — число вершин в графе и [latex]m(1 \leq m \leq n(n — 1)/2) [/latex] — число ребер. Затем следует [latex]m [/latex] пар чисел — ребра графа.

Выходные данные

Выведите в выходной файл YES если граф является регулярным и NO в противном случае.

Тесты

Входные данные Выходные данные
3 3
1 2
1 3
2 3
YES
3 2
1 2
2 3
NO

Решение:

Ссылка на ideone C++: http://ideone.com/cCHxvo

Ссылка на ideone Java: http://ideone.com/2ih3iK

 

Алгоритм решения: создаем вектор счетчиков, показывающих сколько ребер инцидентно данной вершине. Если все элементы вектора одинаковые, то граф регулярный.

 

AA4

Задача: В заданной строке удалить все латинские буквы.

Ввод Вывод
zdfgzdfg987w435kjwbsdf987w345 987435987345

Решение:

Код программы С++:

Ссылка на ideone Java: http://ideone.com/a2x238

 

Вводим строку. Перебираем все символы строки в цикле и удаляем символ, если он является латинской буквой

А402а

Задача: Даны натуральное число [latex]n\geqslant 2 [/latex] , действительная квадратная матрица порядка [latex]n [/latex]. Построить последовательность [latex]b_{1}, \ldots, b_{n} [/latex] из нулей и единиц, в которой [latex]b_{i}=1 [/latex] тогда и только тогда, когда элементы строки матрицы образуют возрастающую последовательность.

Ввод:

5
1 2 3 4 5
6 5 4 3 2
0 1 2 3 4
-5 1 3 4 0
1 3 3.5 4.3 5

Вывод:

1 0 1 0 1

Решение:

Ссылка на ideone C++: http://ideone.com/RrsF1f

Ссылка на ideone Java: http://ideone.com/eW8wJS

 

Вводим матрицу [latex]a[n][n] [/latex]. Заранее присваиваем всем элементам матрицы [latex]b[n] [/latex] единицу.  если условие не выполняется (элементы с строке введенной матрицы расположены не по возрастанию), то меняет единицу на ноль в матрице  [latex]b[n] [/latex]

Ю11.7

Метод трапеций. Вычислить определенный интеграл [latex]I=\int_{b}^{a}f(x)dx [/latex] методом трапеций:[latex] I\approx \frac{b-a}{2n}(y_{0}+2y_{1}+\dots+2y_{n-1}+y_{n}), [/latex] где [latex] n [/latex] — количество отрезков разбиения; [latex]y_{0},y_{1},\ldots,y_{n} [/latex] — значения функции [latex]f(x) [/latex] на концах отрезков.

Вычислим определенный интеграл для функции [latex]y=-3x^2+2x+9[/latex] [latex] \int_{-1}^{2}(-3x^2+2x+9)dx=21 [/latex]

Решение:

Ссылка на ideone C++: http://ideone.com/RJpYSw

Ссылка на ideone Java: http://ideone.com/AfEDeq

 

В условии самой задачи весь алгоритм решения расписан.