Вказівки щодо розв'язання завдання № 13
відбірково-тренувальних зборів
команди міста Києва

13.1. Підпослідовність (рекурентні співвідношення)

  1. Позначимо через f (k, l ) найбільшу довжину спільної підпослідов­ності двох послідов­ностей {xj} при j = 1, 2, …, k та {yj} при j = 1, 2, …, l. Якщо одна з послідовностей порожня (кількість її елементів дорівнює нулю), то порожньою є і найдовша спільна підпос­лідовність: f (k, 0) = 0 = f (0, l ). Крім цього маємо таке рекурентне співвід­ношення:

    f (k, l ) = f (k – 1, l – 1) + 1  при xk = yl;
    f (k, l ) = max{ f (k, l – 1), f (k – 1, l )}  при xkyl.

    У першому випадку останні члени обох послідовностей можна взяти за останній член найдовшої спільної підпослідовності. У другому випадку щонайменше один з них не є останнім членом найдовшої спільної підпослідовності.

  2. Обидві послідовності можна зберігати в оперативній пам'яті в одному лінійному масиві.

  3. В оперативній пам'яті достатньо зберігати 2 рядки матриці f: той, що визначають, і попередній.

  4. За другу послідовність (її довжина дорівнює кількості стовпчиків матриці f ) потрібно взяти коротшу.

13.2. Сім'я (графи)

  1. При зчитуванні даних визначити називний відмінок імені кожного персонажу, його стать, безпосередніх предків і нащадків.

  2. Встановити всіх безпосередніх предків і нащадків кожного з персонажів: батько (мати) сестри чи брата твій батько (твоя мати).

  3. Знайти ланцюг родичі-свояки між персонажами, що передбачає:

    • визначення мінімальної кількості ланок і членів послідовності, кожний наступний член якої є сином чи донькою, батьком чи матір'ю, чоловіком чи жінкою попереднього;

    • встановлення різниці кількості поколінь, на які віддалені персонажі від спільного пращура (передбачено, що граф, що подає відносини родичівства і свояцтва, є деревом, тобто не має циклів):

      • така різниця між сином чи донькою і батьком чи матір'ю складає 1 покоління, а між батьком і сином складає –1;

      • така різниця між онуком (онукою) і дідом (бабою) складає 2 покоління, а між дідом і онуком складає –2;

      • брати і сестри віддалені один від одного на 0 поколінь;

      • чоловік і дружина віддалені один від одного на 0 поколінь.

  4. Визначати родичівство чи свояцтво згідно з поданих в умові означень.