Страница: 1 [Всего задач: 4]
[Четный граф
]
|
|
Сложность: 3 |
Неориентированный граф называется четно-нечетным, если найдутся две его
вершины, между которыми существует пути как из четного, так и из нечетного
числа ребер. Напишите программу, которая:
a) определяет, является ли заданный граф четно-нечетным;
б) В случае отрицательного ответа на пункт
а) находит максимальное подмножество X вершин графа такое, что для любых двух вершин i и j из X
выполняется следующее условие: все пути между i и j состоят из четного числа
ребер.
Входные данные
Первая строка входного файла содержит число вершин графа N
(1 ≤ N ≤ 100), а каждая последующая – пару чисел (i, j), означающих, что в графе присутствует
ребро, соединяющее вершины с номерами i и j.
Выходные данные
Первая строка выходного файла должна содержать ответ на пункт А в форме
YES/NO. В случае отрицательного ответа на пункт А вторая строка должна
содержать количество вершин в множестве X, а третья – номера вершин из
этого множества в порядке возрастания, записанные через пробел. Если
вариантов решений несколько, то достаточно вывести любое из них.
Пример входного файла
3
1 2
Пример выходного файла
NO
2
2 3
[Ориентация графа
]
|
|
Сложность: 3+ |
Задан неориентированный граф с N вершинами, пронумерованными целыми
числами от 1 до N. Напишите программу, которая последовательно решает
следующие задачи:
а) выясняет количество компонент связности
графа;
б) находит и выдает все такие ребра, что удаление любого из них ведет к
увеличению числа компонент связности;
в) определяет, можно ли ориентировать все ребра графа таким образом, чтобы
получившийся граф оказался сильно связным (ориентированный граф называется сильно связным, если из любой его
вершины можно пройти в любую другую, двигаясь по ребрам вдоль стрелок);
г) ориентирует максимальное количество ребер, чтобы получившийся граф
оказался сильно связным;
д) определяет минимальное количество ребер, которые следует добавить в
граф, чтобы ответ на пункт в) был утвердительным.
Входные данные
Во входном файле записано целое число N (1 ≤ N ≤ 100) и список ребер графа,
заданных номерами концевых вершин.
Выходные данные
Ваша программа должна вывести в выходной файл последовательно ответы на
пункты a)-д) в следующем формате:
в первой строке запишите ответ на пункт
а);
во второй строке запишите количество ребер из ответа на пункт
б), а в
последующих строках выдайте сами эти ребра;
в следующую строку выведите сообщение «NOT
POSSIBLE», если
требуемым в пункте в) способом ориентировать граф невозможно, иначе
выведите сообщение «POSSIBLE»;
далее выведите максимальное количество ребер графа, которые можно
ориентировать (пункт г); в последующие строки выведите список этих
ребер;
в качестве ответа на пункт д) выведите количество ребер, которые следует
добавить в исходный граф, а далее выведите сами эти ребра.
Ребра задаются указанием номеров своих концевых вершин, а при выводе
ответа на пункт г) должна быть указана их ориентация (вначале выводится
номер начальной вершины, затем – номер конечной). Если ответ на пункт
а) отличен от единицы, то пункты в) и г) решать не следует и ответы на них не
выводятся. Баллы за пункт в) в случае утвердительного ответа на него
начисляются лишь в том случае, если программа правильным образом
ориентировала ребра графа (пункт г).
Пример входного файла
4
1 2
2 4
3 4
4 1
Пример выходного файла
1
1
3 4
NOT POSSIBLE
3
1 2
2 4
4 1
1
1 3
[Кратеры на Луне
]
|
|
Сложность: 3+ |
Пролетающие время от времени в опасной близости от нашего спутника Луны
астероиды захватываются ее гравитационным полем и, будучи ничем не
задерживаемы, врезаются с огромной скоростью в лунную поверхность,
оставляя в память о себе порядочных размеров кратеры приблизительно
круглой формы.
Увлекающийся астрономией профессор З. В. Ездочетов занялся изучением
современной карты участка лунной поверхности. Он решил найти на ней
максимально длинную цепочку вложенных друг в друга кратеров. Зная о Ваших
недюжинных способностях в области построения алгоритмов, за помощью в
решении этой непростой задачи он обратился к Вам.
Входные данные
Первая строка входного файла содержит целое число N – количество кратеров,
отмеченных на карте (1 ≤ N ≤ 500). Следующие N строк содержат описания
кратеров с номерами от 1 до N. Описание каждого кратера занимает отдельную
строку и состоит из трех целых чисел, принадлежащих диапазону [-32768, 32767] и разделенных пробелами. Первые два числа представляют собой
декартовы координаты его центра, а третье – радиус. Все кратеры различны.
Выходные данные
Первая строка выходного файла должна содержать длину искомой цепочки
кратеров, вторая – номера кратеров из этой цепочки, начиная с меньшего
кратера и кончая самым большим. Номера кратеров должны быть разделены
пробелами. Если существует несколько длиннейших цепочек, следует вывести
любую из них.
Пример входного файла
4
0 0 30
-15 15 20
15 10 5
10 10 10
Пример выходного файла
3
3 4 1
[Электронная таблица
]
|
|
Сложность: 3+ |
Имеется таблица M × N, в каждой ячейке которой записано либо целое число,
либо арифметическая формула. В формулах могут присутствовать целые числа,
знаки *, /, +, -, (, ), пробелы и ссылки на значения из других ячеек таблицы,
записываемые в виде {НомерCтроки, НомерCтолбца} (например, {1,10}).
Требуется вычислить значения во всех ячейках заданной таблицы.
Входные данные:
В первой строке входного файла записаны целые числа M и N (1 ≤ M, N ≤ 20). В
каждой из последующих M строк содержится описание очередной строки
таблицы. Описание состоит из целых чисел и арифметических формул,
разделенных символами | (ASCII-код 124). Все числа принадлежат диапазону
[-32768, 32767], а длина каждой формулы не превышает 100 символов.
Выходные данные:
Выведите в выходной файл значения всех ячеек таблицы. Значения ячеек
каждой строки таблицы должны быть записаны через пробел в отдельной строке
выходного файла. Все значения следует выводить с точностью до двух знаков
после десятичной точки. Если значение ячейки вычислить невозможно, вместо
него следует вывести символ - (ASCII-код 45).
Пример входного файла
2 3
1 | {1, 1
}*10 +3 | -{1,2}/{2,2}
{2,3} |
0
| {2,1}
Пример выходного файла
1.00 13.00 -
- 0.00 -
Страница: 1 [Всего задач: 4]