Нужно написать программу с использованием рекурсии

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Нужно написать программу с использованием рекурсии

Re: Нужно написать программу с использованием рекурсии

Wlad33 » 09 янв 2014, 11:20

спасибо и на этом, стало понятнее

Re: Нужно написать программу с использованием рекурсии

Хыиуду » 09 янв 2014, 11:18

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

Нужно написать программу с использованием рекурсии

Wlad33 » 09 янв 2014, 00:16

Вот текст задания:
Босс компании организует вечеринку, на которую можно пригласить N сотрудников. В компании имеется строгая иерархия – каждый сотрудник подчиняется кому-либо (за исключением босса), кроме того , каждый сотрудник может иметь не более 1 непосредственного начальника (т.е. соблюдается принцип единоначалия). У каждого сотрудника имеется ранг R i – его ценность для компании. При этом каждый сотрудник ненавидит своего непосредственного начальника, поэтому нельзя пригласить на вечеринку одновременно сотрудника и его непосредственного начальника, нужно пригласить кого-то одного из них. Даны два массива R и P размера N – Ri отражает ранг i того сотрудника, P(i) – номер его начальника (для босса P(i) =0). Программа должна найти сочетание сотрудников с максимальным суммарным рангом, которых одновременно можно пригласить на вечеринку.
я не понимаю, как сделать рекурсию, помогите пожалуйста
язык программирования паскаль

Вернуться к началу