---> 1657 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 309 310 311 312 313 314 315 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Числа в позиционной троично-симметричной системе счисления записываются с использованием трех символов: +, –, 0. Например, такими числами являются, например,

"+ + 0 – 0", "– – 0 +", "– – –".

Эти числа переводятся в десятичную систему как:

   а) + + 0 – 0 = 1*\(3^4\) + 1*\(3^3\) + 0*\(3^2\) – 1*\(3^1\) + 0*\(3^0\)

   б) – – 0 + = – 1*\(3^3\) – 1*\(3^2\) + 0*\(3^1\) + 1*\(3^0\)

   в) – – – = – 1*\(3^2\) – 1*\(3^1\) – 1*\(3^0\)

Над числами в позиционной троично-симметричной системе счисления можно выполнять два действия: сложение (+) и вычитание (–). Требуется написать программу, которая вычисляет сумму или разность чисел в троично-симметричной системе счисления. Таблица Пифагора для сложения цифр в троично-симметричной системе счисления имеет вид:

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

В единственной строке записаны два числа в троично-симметричной системе счисления, между которыми в скобках записана требуемая операция. Разрядность чисел не превышает 15.

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

В единственной строке необходимо вывести полученный в результате заданной операции результат в троично-симметричной системе счисления.

Примеры
Входные данные
+++0-(+)-0+
Выходные данные
++000
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Дано прямоугольное поле, каждая клетка которого покрашена в какой-то цвет. За один ход необходимо перекрасить все клетки одного цвета в другой цвет. Стоимость перекраски одной клетки зависит от номера хода и задается функцией: \(F(i) = ((A \cdot F(i-1)+B) \bmod~C) + 1\), \(F_1\) – известная стоимость первого хода.

Необходимо за минимальное количество ходов перекрасить все поле в один цвет так, чтобы общая стоимость перекраски была бы максимальной.

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

В первой строке натуральные задаются числа \(F_1\), \(A\), \(B\) и \(C\) (\(1 \leq F_1, A, B, C \leq 10000\)) – параметры функции \(F\). Во второй строке задаются два натуральных числа \(M\) и \(N\) (\(1 \leq N, M \leq 50\)) – размеры поля. В последующих \(M\) строках записано по \(N\) натуральных чисел, не превосходящих \(2^{31}\) – цвета клеток.

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

В первую строку выведите минимальное число ходов. Во вторую строку выведите в каком порядке будут перекрашиваться цвета, встречающиеся в таблице.

Система оценки

60 баллов ставится за решения, работающие на тестах, в которых номер цвета не превосходит \(10^5\).

ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Много в мире разных часовых поясов! Именно поэтому соревнования по программированию часто бывают в неудобное для некоторых людей время. Как-то раз Гриша и Егор решили поучавствовать в соревновании, которое заканчивалось очень поздно. Именно поэтому ребята решили переночевать в гостинице, чтобы не возвращаться домой поздно. Однако все не так просто. Родители Егора и Гриши очень волнуются за своих детей, поэтому они решили установить по всему городу камеры, чтобы видеть, где находятся ребята.

В городе, где живут программисты 1 ≤ n ≤ 500 000 перекрестков, соединенных n - 1 дорогой так, что между любыми двумя перекрестками существует путь по дорогам.

Родители собираются установить на перекрестках города камеры, радиус действия которых равен длине дороги. Родители будут спокойны, если смогут видеть ребят на любой дороге и на любом про перекрестке. Иными словами, для каждого перекрестка должен существовать перекресток, находящийся на расстоянии не более одной дороги, такой что на нем установлена камера и для любой дороги должна быть установлена камера хотя бы на одном конце этой дороги. Установка камер  — затратное дело, поэтому для каждого перекрестка с номером i известна стоимость 1 ≤ cost i ≤ 10 9 установки камеры на нем.

Помогите родителям установить камеры надлежащим образом за минимальную стоимость.

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

В первой строке входного файла содержится количество перекрестков n ( 1 ≤ n ≤ 500 000 ).

В последующих n - 1 строках содержатся v i u i — перекрестки соединенные очередной дорогой.

Последняя строчка входного файла содержит n чисел сost 1 , сost 2 , ..., сost n ( 1 ≤ сost i ≤ 10 9 )  — стоимости установки камер на перекрестках.

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

В первой строке выведете минимальную стоимость установки ans и количество перекрестков k , в которых надо установить камеры.

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

Если ответов несколько, разрешается вывести любой из них.

Примеры
Входные данные
6
1 2
2 3
1 4
4 5
4 6
228 1488 2 2 8 1
Выходные данные
232 3
1 3 4 
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Телекоммуникационная сеть крупной IT-компании содержит n серверов, пронумерованных от 1 до \(n\). Некоторые пары серверов соединены двусторонними каналами связи, всего в сети m каналов. Гарантируется, что сеть серверов устроена таким образом, что по каналам связи можно передавать данные с любого сервера на любой другой сервер, возможно с использованием одного или нескольких промежуточных серверов.

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

На рис. 1 показан пример сети и отказоустойчивого множества из серверов с номерами 1 и 4. Данные на сервер 2 можно передать следующим образом. При недоступности канала между серверами 1 и 2 — с сервера 4, при недоступности канала между серверами 2 и 3 — с сервера 1. На серверы 3 и 5 при недоступности любого канала связи можно по другим каналам передать данные с сервера 4.

В рамках проекта группе разработчиков компании необходимо разместить свои данные в сети. Для повышения доступности данных и устойчивости к авариям разработчики хотят продублировать свои данные, разместив их одновременно на нескольких серверах, образующих отказоустойчивое множество. Чтобы минимизировать издержки, необходимо выбрать минимальное по количеству серверов отказоустойчивое множество. Кроме того, чтобы узнать, насколько гибко устроена сеть, необходимо подсчитать количество способов выбора такого множества, и поскольку это количество способов может быть большим, необходимо найти остаток от деления этого количества способов на число \(10^9 + 7\).

Требуется написать программу, которая по заданному описанию сети определяет следующие числа: \(k\) — минимальное количество серверов в отказоустойчивом множестве серверов, \(c\) — остаток от деления количества способов выбора отказоустойчивого множества из \(k\) серверов на число \(10^9 + 7\)

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

Первая строка входного файла содержит целые числа \(n\) и \(m\) — количество серверов и количество каналов связи соответственно (\(2 \le n \le 200000\), \(1 \le m \le 200000\)). Следующие \(m\) строк содержат по два целых числа и описывают каналы связи между серверами. Каждый канал связи задается двумя целыми числами: номерами серверов, которые он соединяет.

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

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

Выведите два целых числа, разделенных пробелом: \(k\) — минимальное число серверов в отказоустойчивом множестве серверов, \(c\) — количество способов выбора отказоустойчивого множества из \(k\) серверов, взятое по модулю \(10^9 + 7\)

Пояснения к примеру

В приведенном примере отказоустойчивыми являются следующие множества из двух серверов: {1, 3}, {1, 4}, {1, 5}.

Описание подзадач и системы оценивания

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

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

Дано дерево из n вершин. У каждой вершины есть цвет. Нужно обработать q запросов ( v i , c i ): найти расстояние от v i до ближайшей к v i вершины цвета c i . Расстоянием между вершинами называется минимальное количество рёбер в пути между ними.

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

На первой строке число n ( 1 ≤ n ≤ 10 5 ), следующая строка содержит числа p 1 , p 2 , ..., p n - 1 . 0 ≤ p i < i . p i – отец вершины i в дереве. Далее строка с числами a 0 , a 1 , ..., a n - 1 . 0 ≤ a i < n . a i – цвет вершины i . Далее строка с числом q ( 1 ≤ q ≤ 10 5 ). Следующие q строк содержат запросы v iq i ( 0 ≤ v i < n , 0 ≤ c i < n ).

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

Для каждого запроса выведите одно число – расстояние до ближайшей вершины нужного цвета, или - 1 , если в дереве нет вершин такого цвета.

Решения, работающие при \(1 \leq n \leq 200\), будут набирать не менее 30 баллов

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

Страница: << 309 310 311 312 313 314 315 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест