|
|
|
|
|
|
|
| 1 А А А, 01 ноября 2026 г. 11:56:07 |
| import sys from math import comb def solve(): data = list(map(int, sys.stdin.buffer.read().split())) if not data: return n = data[0] children = [[] for _ in range(n)] for v in range(1, n): children[data[v] - 1].append(v) groups = [None] * n types = [0] * n patterns = [] type_ids = {} for v in range(n - 1, -1, -1): group = {} for u in children[v]: group.setdefault(types[u], []).append(u) groups[v] = group pattern = tuple(sorted( (t, len(vertices)) for t, vertices in group.items() )) if pattern not in type_ids: type_ids[pattern] = len(patterns) patterns.append(pattern) types[v] = type_ids[pattern] def count_colorings(k): ways = [] for pattern in patterns: total = k for child_type, amount in pattern: available = ways[child_type]
|
|
|
| 2 Яндулов Богдан, 17 июля 2021 г. 12:55:04 |
| 31 1 2 2 1 5 5 1 8 8 1 11 11 1 14 14 1 17 17 1 20 20 1 23 23 1 26 26 1 29 29 -> 4 1 1 1 2 1 1 3 1 1 4 1 2 3 1 2 4 1 3 4 2 1 2 2 1 3 2 1 4 2 2 3
|
|
|
| 3 Яндулов Богдан, 17 июля 2021 г. 12:54:29 |
| 28 1 2 2 1 5 5 1 8 8 1 11 11 1 14 14 1 17 17 1 20 20 1 23 23 1 26 26 -> 3 1 1 1 2 1 1 3 1 2 3 2 1 2 2 1 3 2 2 3 3 1 2 3 1 3 3 2 3
|
|
|
| 4 Яндулов Богдан, 17 июля 2021 г. 12:54:15 |
| Сложно понять, что от тебя хотят в условии. Оставлю парочку примеров, чтобы стало понятнее
|
|
|
| 5 Амир Нурмухамбетов Таирович, 25 февраля 2021 г. 15:21:21 |
| Какой 7 тест?
|
|
|
| 6 Зинов Вадим, 12 ноября 2019 г. 15:01:42 |
| В примере поддеревья справа и слева имеют одинаковую структуру, то есть если покрутить эти поддеревья можно их поменять местами. Требуется придумать такую раскраску для всего дерева, чтобы подобная замена была не возможна.
|
|
|
| 7 Мансур, 21 июня 2019 г. 11:26:26 |
| Можете помочь с условием, я не понимаю. Клема это что? Какой номер мы даем вершине? Контакт это ребро? Можете объяснить тестовый пример пожалуйста.
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |