Темы --> Информатика
    Язык программирования(952 задач)
    Алгоритмы(1657 задач)
    Структуры данных(279 задач)
    Интерактивные задачи(17 задач)
    Другое(54 задач)
---> 2656 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 330 331 332 333 334 335 336 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Для строки S определим ее префикс-функцию: \(\pi [i] = max(k|0 \leq k < i; S[1..k] = S[i - k + 1..i])\) для всех \(1 \leq i \leq N\), где \(N\) — длина строки. Например, для S = abacabaa ее префикс-функция имеет вид: [0, 0, 1, 0, 1, 2, 3, 1]. Ваша задача по заданной префикс-функции восстановить строку. В качестве символов строки разрешается использование \(M\) первых строчных букв латинского алфавита.

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

Входной файл состоит из одного или более набора входных данных. В первой строке каждого набора записаны два целых числа \(N\), \(M\) (\(N \geq 1\), \(1 \leq M \leq 26\)). Во второй строке записана последовательность целых чисел \(\pi [1]\), \(\pi [2]\), ..., \(\pi [N]\). Все числа в последовательности целые неотрицательные, не превосходящие \(10^6\). Сумма значений \(N\) по всем наборам не превосходит \(10^6\), количество наборов входных данных не превосходит \(10^5\).

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

Выведите в первую строку выходного файла YES если существует искомое слово и NO в противном случае. В случае положительного ответа выведите во вторую строку выходного файла выведите искомое слово. Если решений несколько, выведите любое.

Примеры
Входные данные
8 3
0 0 1 0 1 2 3 1
1 1
10
Выходные данные
YES
abacabaa
NO
ограничение по времени на тест
5.0 second;
ограничение по памяти на тест
6 megabytes

Плоскость разбили на одинаковые прямоугольники размера \(M\times N\) со сторонами, параллельными осям координат, и вершинами, расположенными в точках (\(M\times i, N\times j\)), где \(i\) и \(j\) пробегают всевозможные целые числа. Пусть на этой плоскости задана точка \(P(x,y)\) с целочисленными координатами. Назовем расстоянием от точки \(P\) до некоторого прямоугольника наименьшее из расстояний от \(P\) до точек этого прямоугольника, включая его границу. В частности, расстояние от точки до прямоугольника, в котором она содержится, равно 0.
Требуется написать программу, перечисляющую прямоугольники, удаленные от \(P\) на расстояние, не превосходящее \(L\). Прямоугольники должны быть перечислены в порядке неубывания этого расстояния.

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

Во входном файле содержатся целые числа \(M\), \(N\), \(L\), \(x\) и \(y\) (\(1 \leq M\leq 10\), \(1 \leq N\leq 10\), \(0\leq L\leq 1000\), \(–30000 \leq x,y \leq 30000\)), разделенные пробелами и/или переводами строк.

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

Выведите в выходной файл координаты левых нижних углов искомых прямоугольников в описанном выше порядке. Прямоугольники, равноудаленные от \(P\), могут выводиться в произвольном порядке.

Примеры
Входные данные
3 2 2
4 3
Выходные данные
7
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

В традиционной музыке используются музыкальные звуки из некоторого набора, именуемого звукорядом. Звуки звукоряда принято группировать в октавы, в каждой из которых 12 звуков. Порядковый номер звука в пределах одной октавы назовем нотой. Таким образом, каждый звук можно задать парой чисел – номером октавы и номером ноты. Номер октавы \(К\) – произвольное целое число, номер ноты \(N\) принимает значение из интервала [01,12]. Звуки можно обозначать этими двумя числами, записанными рядом без пробелов (второе число всегда двузначное). Эту запись назовем кодом \(Q\). Например, \(Q\) = –108 для (–1)-й октавы, восьмой ноты. Значение \(Z\), определяемое по формуле \(Z = K\times 12 + N\) назовем абсолютным номером \(Z\) звука в звукоряде (для приведенного выше примера \(Z = –4\)).
Набор всех звуков, ноты которых принадлежат заданному подмножеству \(P\) номеров нот, назовем гармонией \(G\). Это означает, что любой звук с абсолютным номером \(Z = K\times 12 + n\), где \(n\) – номер ноты из \(P\), принадлежит этой гармонии при любом значении \(K\). Отсюда следует, что гармония однозначно определяется указанием \(P\). Две гармонии назовем эквивалентными, если при прибавлении некоторого одного и того же целого числа ко всем абсолютным номерам звуков первой гармонии получаются все элементы второй гармонии. Ограничимся рассмотрением только таких наборов гармоний, в которые наряду с каждой из гармоний входят и все эквивалентные ей. Для описания набора такого вида достаточно указать из каждой совокупности эквивалентных по одной гармонии \(G_i\) или соответствующему ей подмножеству \(P_i\). Базой \(B\) набора гармоний назовем совокупность всех таких \(P_i\).

Всякую совокупность одновременно звучащих звуков (не менее двух) будем называть аккордом \(A\). Для некоторого заданного набора гармоний назовем гармонией аккорда \(A\) такую гармонию \(G\) из него, что все звуки аккорда \(A\) принадлежат \(G\).

Будем говорить, что некоторый звук в тему для некоторого аккорда, если этот звук принадлежит хотя бы одной гармонии из множества всех гармоний этого аккорда.

Последовательное звучание произвольных звуков назовем мелодией. Каждому звуку мелодии может быть сопоставлен аккорд в порядке исполнения мелодии. Будем считать мелодию благозвучной для этой последовательности аккордов, если каждый ее звук оказывается в тему для соответствующего ему аккорда. Кучерявостью мелодии назовем сумму модулей разностей абсолютных номеров \(Z\) последовательно исполняемых звуков данной мелодии.

Пусть даны: база \(B\) набора гармоний, последовательность аккордов \(A\) и начальный звук \(Q\). Требуется написать программу, находящую наименее кучерявую из всех благозвучных мелодий, начинающихся с этого звука.

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

В первой строке записано целое число \(M\) — количество заданных элементов в базе набора гармоний (\(1 \leq M \leq 200\)). Далее следуют \(M\) строк, каждая из которых содержит описание одного из элементов в базе набора гармоний в виде последовательности составляющих ее номеров нот, записанных через пробел. В следующей строке находится целое число \(L\) — количество заданных аккордов (\(1 \leq L \leq 200\)). Каждая из последующих \(L\) строк содержит описание одного из аккордов в виде последовательности кодов составляющих его звуков, записанных через пробел. Описания аккордов следуют в порядке их исполнения. Последняя строка входного файла содержит код начального звука \(Q\). Все значения кодов звуков записываются тремя цифрами.

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

В первую строку выходного файла следует вывести минимально возможную кучерявость среди всех мелодий, удовлетворяющих описанным выше требованиям. Оставшиеся строки должны содержать \(L\) целых чисел — коды \(Q\) звуков, составляющих соответствующую мелодию. Если вариантов мелодий несколько, нужно вывести любую из них. Для заданных во входном файле данных всегда будет существовать хотя бы одна благозвучная мелодия.

Примеры
Входные данные
3
1 5 8 11
1 5 8 12
1 6 8
5
101 106
010 112
-101 004
201 202
110 111
102
Выходные данные
4
102 104 104 106 106
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

На прямой задано некоторое множество отрезков с целочисленными координатами концов [\(L_i\), \(R_i\)]. Выберите среди данного множества подмножество отрезков, целиком покрывающее отрезок [0, \(M\)], (\(M\) — натуральное число), содержащее наименьшее число отрезков.

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

В первой строке указана константа \(M\) (\(1 \leq M \leq 5000\)). В каждой последующей строке записана пара чисел \(L_i\) и \(R_i\) (\(|L_i|, |R_i| \leq 50000\)), задающая координаты левого и правого концов отрезков. Список завершается парой нулей. Общее число отрезков не превышает 100 000.

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

В первой строке выходного файла выведите минимальное число отрезков, необходимое для покрытия отрезка [0; \(M\)]. Далее выведите список покрывающего подмножества, упорядоченный по возрастанию координат левых концов отрезков. Список отрезков выводится в том же формате, что и во входe. Завершающие два нуля выводить не нужно. Если покрытие отрезка [0, \(M\)] исходным множеством отрезков [\(L_i\), \(R_i\)] невозможно, то следует вывести единственную фразу “No solution”.

Примеры
Входные данные
1
-1 0
-5 -3
2 5
0 0

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

Входные данные
1
-1 0
0 1
0 0
Выходные данные
1
0 1
#3359
  
Темы: [Потоки]
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Дан двудольный граф, в каждой из долей которого \(N\) вершин. В нем также есть \(M\) ребер, каждое из которых имеет свою стоимость. Требуется найти паросочетание максимальной стоимости.

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

В первой строке входного файла заданы числа \(1 \leq N \leq 50\) и \(1 \leq M \leq 1000\). В следующих \(M\) строках заданы ребра графа – в каждой по три числа. Первые два из них задают соответственно номера вершин в левой и правой долях, третье – стоимость. Все стоимости не превосходят 10. Гарантируется, что у каждых двух ребер есть отличие хотя бы в одном из концов.

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

В первой строке выходного файла выведите максимальную стоимость. В следующей строке выведите \(N\) чисел, i-ое из которых обозначает номер вершины из правой доли, с которой соединена i-ая вершина левой доли. Если i-ая вершина не соединена ни с какой вершиной правой доли, то на i-ом месте должна стоять -1. Из всех возможных ответов нужно вывести наименьший лексикографически. Один ответ считается лексикографически меньшим другого, если первое число, в котором они отличаются у него меньше.

Примеры
Входные данные
3 5
1 1 1
2 2 1
3 3 1
2 1 2
3 2 2
Выходные данные
4
-1 1 2

Страница: << 330 331 332 333 334 335 336 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест