Найти в Дзене
Задача «Родословная: LCA». Мое решение на Python 3. Условие В генеалогическом древе определите для двух элементов их наименьшего общего предка (Lowest Common Ancestor). Наименьшим общим предком элементов A и B является такой элемент C, что С является предком A, C является предком B, при этом глубина C является наибольшей из возможных. При этом элемент считается своим собственным предком. Формат входных данных аналогичен предыдущей задаче "Родословная: подсчет уровней". Для каждого запроса выведите наименьшего общего предка данных элементов. Решение: k = int(input())  # число строк ввода A = dict()   # словарь запросов for i in range(k-1):   temp = input().split()   A[temp[0]] = temp[1] parents = A.values() # сформировали список родителей childrens = A.keys() # сформировали список детей for name in parents:   # перебираем имена отцов   # находим 0-ое поколение   if name not in childrens:    first = name    del name    break k = int(input())  # число строк ввода for i in range(k):   temp = input().split()   key = temp[0]   val = temp[1]   # сформировали пару   finally_output = []   # список для вывода на экран   key_parent = []   key_parent.append(key)   val_parent = []   val_parent.append(val)    в родословные самих участников   G = A.copy()   dad_key = G.get(key)   key_parent.append(dad_key)   dad_val = G.get(val)   val_parent.append(dad_val)   while dad_key != first:    dad_key = G.get(dad_key)    key_parent.append(dad_key)   # добавляем предков родственника key
2 года назад
Задача «Родословная: подсчет уровней» Мое решение на Python 3
Задача «Родословная: подсчет уровней» Мое решение на Python 3. Условие задачи: В генеалогическом древе у каждого человека, кроме родоначальника, есть ровно один родитель. Каждом элементу дерева сопоставляется целое неотрицательное число, называемое высотой. У родоначальника высота равна 0, у любого другого элемента высота на 1 больше, чем у его родителя. Вам дано генеалогическое древо, определите высоту всех его элементов. Программа получает на вход число элементов в генеалогическом древе N. Далее следует N−1 строка, задающие родителя для каждого элемента древа, кроме родоначальника...
244 читали · 2 года назад
Python 3. Задача «Родословная: предки и потомки». Мое решение.
Python 3. Задача «Родословная: предки и потомки». Мое решение. Условие задачи: https://pythontutor.ru/lessons/dicts/problems/genealogy_ancestors_and_descendants/ "Даны два элемента в дереве. Определите, является ли один из них потомком другого. Во входных данных записано дерево в том же формате, что и в предыдущей задаче Далее идет число запросов K. В каждой из следующих K строк, содержатся имена двух элементов дерева. Для каждого такого запроса выведите одно из трех чисел: 1, если первый элемент...
2 года назад
Домбай - горнолыжный курорт Кавказа летом
Всем привет, в мае 2021 года я решил посетить поселок Донбай Карачаево-Черкессии с целью насладится красотой местных гор и прогуляться после пыльного душного Санкт-Петербурга. Мой друг из Черкесска приглашал навестить его и я рассматривал направления рядом с его городом: Архыз или Донбай. По итогу выбрал Донбай, т.к. на момент поездки нашел более выгодный вариант проживания. Добраться до п. Донбай несложно: нужно взять билет до аэропорта Минеральные воды, а оттуда взять такси или арендовать машину...
4 года назад