Страница: << 170 171 172 173 174 175 176 >> Отображать по:
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
256 megabytes

Взаимодействие сотрудников в некоторой компании организовано в виде иерархической структуры. Всего в компании работают \(n\) сотрудников. Каждому сотруднику присвоен уникальный номер от 1 до \(n\), директору присвоен номер 1. У каждого сотрудника, кроме директора, есть ровно один непосредственный начальник. Непосредственный начальник сотрудника \(i\) имеет номер \(p_i\) , причем \(p_i \lt i\).

Сотрудник \(x\) является подчиненным уровня 1 сотрудника \(y\), если \(p_x = y\). Для \(k \gt 1\) сотрудник \(x\) является подчиненным уровня \(k\) сотрудника \(y\), если сотрудник \(p_x\) является подчиненным уровня \(k – 1\) сотрудника y.

У директора компании появилась возможность направить некоторых сотрудников на курсы повышения квалификации. Для этого он решил выбрать два числа \(L\) и \(R\) и направить на курсы всех сотрудников с номерами \(i\), такими что \(L \le i \le R\).

Перед тем, как выбрать числа \(L\) и \(R\), директор получил \(m\) пожеланий от сотрудников компании, \(j\)-е пожелание задается двумя числами \(u_j\) и \(k_j\) и означает, что сотрудник \(u_j\) просит отправить на курсы одного из своих подчиненных уровня \(k_j\) . Для экономии средств директор хочет выбрать такие \(L\) и \(R\), чтобы количество сотрудников, направленных на повышение квалификации, было минимальным возможным, но при этом все пожелания были выполнены.

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

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

Первая строка входного файла содержит число \(n\) — количество сотрудников компании (\(2 \le n \le 200 000\)). Вторая строка содержит \((n – 1)\) чисел: \(p_2, p_3, \dots, p_n (1 \le p_i \lt i\)) — номера непосредственных начальников сотрудников.

Третья строка содержит число \(m\) — количество пожеланий от сотрудников.

Последующие \(m\) строк задают пожелания сотрудников и содержат по два целых числа \(u_j , k_j (1 \le u_j \lt n, 1 \le k_j \lt n\), гарантируется, что у сотрудника \(u_j\) есть хотя бы один подчиненный уровня \(k_j\)).

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

Необходимо вывести два искомых числа: \(L\) и \(R\). Если оптимальных пар \((L, R)\) несколько, требуется вывести ту, в которой значение \(L\) минимально.

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

На повышение квалификации будут направлены сотрудники с номерами 3, 4, 5 и 6. Сотрудник с номером 3 является подчиненным уровня 1 сотрудника с номером 1, сотрудник с номером 4 — подчиненным уровня 2 сотрудника с номером 1, а сотрудник с номером 6 — подчиненным уровня 1 сотрудника с номером 3.

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

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

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

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

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

Первая строка ввода содержит целое число: количество сотрудников. Сотрудники имеют номера от 1 до n . После этого вход содержит n строк, описывающих предпочтения сотрудников. В i -й строке содержится целое число k i , за которым следует список целых чисел. Список состоит из всех сотрудников, которых i -й работник готов принять в качестве своего босса.

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

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

Примечание

подзадача 1(22 балла)

2 < n < 10 k i ≤ 20

подзадача 2(45 балла)

2 < n < 100 k i ≤ 200

подзадача 3(33 балла)

2 < n < 5000 k i ≤ 10000

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

В столице города Бестеланд есть огороженный парк, площадь которого представляет собой прямоугольник. Деревья и посетители в парке представляют собой круги. В парке есть четыре входа, по одному в каждом углу (1 = внизу слева, 2 = внизу справа, 3 = верхний правый, 4 = верхний левый). Посетители могут войти и выйти из парка только через входы. Посетители могут войти и выйти из парка, когда они касаются обеих сторон угла соответствующего входа. Посетители могут свободно передвигаться по парку, но они не могут пересекаться ни с деревьями, ни с забором. Ваша задача для каждого посетителя, учитывая вход, через который он войдет в парк, рассчитать через какие входы он может выйти из парка.

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

Первая строка ввода содержит два целых числа n и m : число деревьев в парке и количество посетителей. Вторая строка ввода содержит два целых числа w и h : ширину и высоту парковой зоны. Левый нижний угол имеет координаты(0, 0), верхний правый угол имеет координаты ( w , h ) . следующие строки описывают деревья. Каждая строка содержит три целых числа x , y и r : координаты центра дерева ( x , y ) и его радиус r . Деревья не перекрывают друг друга или забор. Наконец, есть m строк, которые описывают посетителей. Каждая строка содержит два целых числа r и e: радиус посетителя, и вход, который они войдут в парк. Кроме того, ни одно дерево не перекрывает квадратную площадь в каждом углу, где находится радиус наибольшего посетителя.

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

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

Примечание

Два объекта касаются, если они имеют одну общую точку. Два объекта перекрываются, если они имеют более одной общей точки

4 k < w , h < 10 9 где k - радиус самого большого дерева

подзадача 1(27 баллов)

1 <  = n <  = 2000

m = 1

подзадача 2(31 балл)

1 <  = n <  = 200

1 <  = m <  = 10 5

подзадача 3(42 балл)

1 <  = n <  = 2000

1 <  = m <  = 10 5

Примеры
Входные данные
5 3
16 11
11 8 1
6 10 1
7 3 2
10 4 1
15 5 1
1 1
2 2
2 1
Выходные данные
1234
2
14
ограничение по времени на тест
1.5 second;
ограничение по памяти на тест
256 megabytes

Сетка размера (2 n + 1) * (2 n + 1) была построена следующим образом. Номер 1 был помещен в центральный квадрат, номер 2 был помещен справа от него, а следующие числа были помещены вдоль спирали против часовой стрелки.

Ваша задача - рассчитать ответы на q запросов, где запрашивается сумма чисел в прямоугольной области в сетке (по модулю 10 9 + 7 ). Например, в следующей сетке n = 2 а сумма чисел в серой области 74 :

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

Первая строка ввода содержит два целых числа n и q : размер сетки и количество запросов.

дальше идут q строк, каждая из которых содержит четыре целых числа x 1 , y 1 , x 2 , y 2 , ( - n x 1 x 2 n ,  - n y 1 y 2 n , ) . Вы должны рассчитать сумму чисел в прямоугольной области с углами ( x 1 , y 1 ) и ( x 2 , y 2 ) .

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

Вы должны вывести ответ для каждого запроса (по модулю 10 9 + 7 ).

Примечание

Во всех тестах 1 ≤ q ≤ 100

Подгруппа 1(12 баллов)

1 ≤ n ≤ 1000

Подгруппа 2(15 баллов)

1 ≤ n ≤ 10 9

x 1 = x 2 и y 1 = y 2

Подгруппа 3(17 баллов)

1 ≤ n ≤ 10 5

Подгруппа 4(31 балл)

1 ≤ n ≤ 10 9

x 1 = y 1 = 1

Подгруппа 5(25 балл)

1 ≤ n ≤ 10 9

Примеры
Входные данные
2 3
0 -2 1 1
-1 0 1 0
1 2 1 2
Выходные данные
74
9
14
ограничение по времени на тест
3.0 second;
ограничение по памяти на тест
256 megabytes

Есть n городов в Байтландии, и k из них важные города, часто посещаемые королем. В стране есть m дорог, каждая из которых соединяет два города. К сожалению, состояние дорог настолько плохо, что король не может проехать через них с полной скоростью на своих спортивных автомобилях. Для каждой дороги известны затраты на ее обновление. Ваша задача - выбрать, какие дороги будут отремонтированы, чтобы все k важных города были связаны отремонтированными дорогами, а общая стоимость была как можно ниже.

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

Первая строка ввода содержит три целых числа n , k и m : количество городов, количество важных городов и количество дорог. Города пронумерованы 1, 2, ..., n . Вторая строка ввода содержит k целых чисел: важные города.

Следующие m строк, описывают дороги. Каждая строка содержит три целых числа a , b и c , что означает, что существует двунаправленная дорога между городами a и b , а стоимость ремонта дороги - c .

Гарантируется, что существует маршрут между любыми двумя городами.

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

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

Примечание

Во всех тестах 1 ≤ c 10 9 и n k

Подгруппа 1 (22 баллов)

2 ≤ k ≤ 5

n ≤ 20

1 ≤ m ≤ 40

Подгруппа 2 (14 баллов)

2 ≤ k ≤ 3

n ≤ 10 5

1 ≤ m ≤ 2 * 10 5

Подгруппа 3 (15 баллов)

2 ≤ k ≤ 4

n ≤ 1000

1 ≤ m ≤ 2000

Подгруппа 4 (23 баллов)

k = 4

n ≤ 10 5

1 ≤ m ≤ 2 * 10 5

Подгруппа 5 (26 баллов)

k = 5

n ≤ 10 5

1 ≤ m ≤ 2 * 10 5

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

Страница: << 170 171 172 173 174 175 176 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест