---> 1657 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 225 226 227 228 229 230 231 >> Отображать по:
#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
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes
Компоненты сильной связности

В Берляндии скоро появятся свои авиалинии. Комитет по разработке берляндских авиалиний уже предложил свой вариант соединения городов авиарейсами. Каждый авиарейс задается парой различных городов. Рейсы односторонние. Президенту понравился план, однако он показался ему чересчур неэкономным. Требуется разработать новый план, который содержит наименьшее количество авиарейсов и удовлетворяет условию: если из города a можно было попасть в город b (возможно, с пересадками) согласно первоначальному плану, то и в новом плане это должно быть возможным. Если же это было сделать невозможно, то и согласно новому плану это не должно быть возможным. Очевидно, что из любого города можно попасть в него самого.

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

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

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

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

Примечание

Тесты при \(N \le 20\), \(M \le 40\) оцениваются в 40 баллов и только при прохождении всех тестов группы.

Остальные тесты оцениваются независимо, но только при прохождении всех тестов первой группы.

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

Ограничение по времени – 10 секунд.
Ограничение по памяти – 64 мегабайта.
Компания Bugs начинает выпуск планки оперативной памяти Q-RAM размером 6 террабайт. Каждая планка состоит из 6 квадратных микросхем в форме прямоугольника \(3\times 2\). В результате технологического процесса, используемого в компании Bugs, получается прямоугольная область, разделенная на \(N\times M\) квадратных микросхем. После этого микросхемы тщательно проверяются и битые микросхемы помечаются черным маркером.


После этого, область разрезается на отдельные планки размером \(3\times 2\)(или \(2\times 3\)). Естественно, ни одна планка не должна содержать битых микросхем. Может возникнуть такая ситуация, что не все хорошие микросхемы войдут в какую-либо планку. Однако для снижения себестоимости компания хочет изготовить из произведенной области как можно больше планок.
На вход вашей программе будет даваться размер области и список битых микросхем на ней. Для этой области вам необходимо определить максимальное количество планок, которое можно вырезать из нее.

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

Первая строка содержит три целых числа \(N\), \(M\) и \(K\) (\(1\leq N\leq 150\), \(1 \leq M \leq 10\), \(0 \leq K \leq M\times N\)), где \(N\) – длина области, \(M\) – ее ширина, а \(K\) – количество битых микросхем. Следующие K строк содержат описание битых микросхем. Каждая из них содержит координаты битой микросхемы в виде двух целых чисел \(x\) и \(y\) (\(1 \leq x \leq N\), \(1 \leq y \leq M\)).

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

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

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

На плоскости задан прямоугольник размером \(W\times H\), и \(N\) отмеченных точек внутри него. Требуется найти квадрат максимального размера:
со сторонами, параллельными сторонам прямоугольника;
не содержащий отмеченных точек строго внутри себя (но, возможно, содержащий отмеченные точки на границе);
лежащий внутри прямоугольника.

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

Первая строка входного файла содержит числа \(N\) — количество отмеченных точек, \(W\) — ширину прямоугольника и \(H\) — высоту прямоугольника (\(1 \leq N \leq 3 * 10^4\), \(0 \leq W, H \leq 10^6\)). Следующие \(N\) строк содержат координаты отмеченных точек \(X_i\), \(Y_i\) (целые числа, \(0 \leq X_i \leq W\), \(0 \leq Y_i \leq H\)). Система координат введена так, что вершины прямоугольника имеют координаты \((0, 0)\), \((W, 0)\), \((0, H)\), \((W, H)\).

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

Выведите в выходной файл одно число — длину стороны максимального искомого квадрата.

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

Напомним, что палиндромом называется строка, которая читается одинаково как слева направо, так и справа налево. Например, палиндромами являются строки «abba» и «madam».
Для произвольной строки s введем операцию деления пополам, обозначаемую half(s). Значение half(s) определяется следующими правилами:
Если s не является палиндромом, то значение half(s) не определено;
Если s имеет длину 1, то значение half(s) также не определено;
Если s является палиндромом четной длины 2m, то half(s) — это строка, состоящая из первых m символов строки s;
Если s является палиндромом нечетной длины 2m + 1, большей 1, то half(s) — это строка, состоящая из первых m + 1 символов строки s.
Например, значения half(inforamatics) и half(i) не определены, half(аbbа) = ab, half(madam) = mad. Палиндромностью строки s будем называть максимальное число раз, которое можно применить к строке s операцию деления пополам, чтобы результат был определен.
Например, палиндромность строк «informatics» и «i» равна 0, так как к ним нельзя применить операцию деления пополам даже один раз. Палиндромность строк «abba» и «madam» равна 1, а палиндромноств строки «totottotot» равна 3, посколвку операция деления пополам применима к ней три раза:
«totottotot» —> «totot» —> «tot» —> «to».
Задана некоторая строка s. Необходимо изменить в ней минимальное число символов так, чтобы ее палиндромность стала равной k.

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

Первая строка входного файла содержит число k (\(0 \leq k \leq 20\)). Вторая строка входного фай­ла содержит непустую строку s, состоящую из строчных букв латинского алфавита. Ее длина не превосходит \(10^5\) символов.

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

В выходной файл выведите минимальное число символов, которое требуется изменить, или —1, если требуемым образом изменить строку невозможно.

Примеры
Входные данные
2
abaabc
Выходные данные
1
Входные данные
1
ababa
Выходные данные
1
Входные данные
2
aa
Выходные данные
-1

Страница: << 225 226 227 228 229 230 231 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест