|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.09.2023, 22:44 | #1 |
Пользователь
Регистрация: 16.03.2023
Сообщений: 67
|
С++ стек, очередь, древовидная структура
Ломаю голову и не пойму как написать программу вот такого условия: Есть министерство из N чиновников, где N натуральное число. У каждого из чиновников могут быть как подчиненные, так и начальники, причем справедливы правила: подчиненные моего подчиненного мои подчиненные, начальники моего начальника - мои начальники, мой начальник не есть мой подчиненный, у каждого чиновника не более одного непосредственного начальника.
Для того чтобы получить лицензию на вывоз меди необходимо получить подпись 1-ого чиновника - начальника всех чиновников. Проблема осложняется тем, что каждый чиновник, вообще говоря, может потребовать "визы", т.е. подписи некоторых своих непосредственных подчиненных и взятку - известное количество долларов. Для каждого чиновника известен непустой список возможных наборов "виз" и соответствующая каждому набору взятка. Пустой набор означает, что данный чиновник не требует виз в данном случае. Чиновник ставит свою подпись лишь после того, как ему представлены все подписи одного из наборов "виз" и уплачена соответствующая взятка. Необходимо определить и вывести минимальный по сумме уплаченных взяток допустимый порядок получения подписей для лицензии и стоимость. Может кто-нибудь сможет подсказать, может у кого есть идея. |
20.09.2023, 23:13 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,770
|
Проблема в чем? Задача несложная то. Идете с корня дерева вниз по наборам и составляете все возможные пути до низу или пустого списка, считаете сумму и находите минимум.
|
21.09.2023, 08:37 | #3 |
Пользователь
Регистрация: 16.03.2023
Сообщений: 67
|
Проблема, как это сделать без вектора, применяя списки, очередь и/или стек. И использовать только библиотеку #include <iostream>
Последний раз редактировалось lenaiv; 21.09.2023 в 08:41. |
21.09.2023, 09:06 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,770
|
А что вы собрались в векторе хранить? Путь? Так его можно хранить в стеке спокойно и потом раскручиать наоборот от низшего чиновника к верху просто доставай элементы.
|
22.09.2023, 00:39 | #5 |
Пользователь
Регистрация: 16.03.2023
Сообщений: 67
|
А как это, нам такое не рассказывали.
|
22.09.2023, 08:39 | #6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,770
|
Что вам не рассказывали? Что такое стек? Что он LIFO?
|
22.09.2023, 17:22 | #7 |
Пользователь
Регистрация: 16.03.2023
Сообщений: 67
|
Вот, что про Очередь рассказали
Код:
Код:
|
25.09.2023, 13:24 | #8 |
Пользователь
Регистрация: 16.03.2023
Сообщений: 67
|
написала программу, а она не работает (в 40 и 67 ругается на n), не знаю как исправить и правильная она, может кто-нибудь проверит, если знает
Код:
|
25.09.2023, 13:46 | #9 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,770
|
Массивы нумеруются с 0. Если у вас есть массив объектов, то не обязательно создавать отдельно еще один и копировать.
VLA это gcc расширения. Создавайте массив динамически или возьмите вектор, который сделает это за вас. У вас же дерево должно хранить чиновников. Массив зачем? |
25.09.2023, 13:55 | #10 |
Пользователь
Регистрация: 16.03.2023
Сообщений: 67
|
а как тогда, сказали без вектора только, поэтому проблема у меня с этой программой
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Стек и очередь. Задачи никогда не попадают в стек - Delphi | Exxodus | Помощь студентам | 1 | 05.04.2016 14:12 |
Стек и очередь | Кротяка | Общие вопросы C/C++ | 1 | 12.08.2014 18:51 |
Древовидная структура | alt5000 | PHP | 4 | 16.12.2011 00:13 |
Древовидная структура таблицы в гриде | AK BULLETS | Общие вопросы Delphi | 3 | 21.03.2010 02:51 |