Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2014, 16:52   #11
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от rrrFer Посмотреть сообщение
неа, он же 3 месяца решал задачу со сложностью 2% - т.е. ту, которая мало отличается от хелловорлда. А тут вдруг...

Цитата:
я не знаю что такое "открытый граф". Гугл тоже не знает. Дай ссылку почитать?

Как по мне, задача более чем тривиальная - нужен обыкновенный обход дерева.
Ссылки нет, но любое дерево, можно представить графом, как и граф - деревом. Листья "открытого графа", можно объединить в вершину с нулевым балансом хорд.
Тогда, его можно решить матричным методом. Есть у меня литературка на этот счёт, но рыться - лениво.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 07.04.2014, 17:13   #12
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Есть у меня литературка на этот счёт, но рыться - лениво.
Просим! Просим!


Цитата:
неа, он же 3 месяца решал задачу со сложностью 2% - т.е. ту, которая мало отличается от хелловорлда. А тут вдруг...
Мда.. Логика зашкаливает..

Цитата:
Листья "открытого графа", можно объединить в вершину с нулевым балансом хорд.
Нулевой баланс хорд? Что это? Суммарная стоимость хорд = 0?


Цитата:
Как по мне, задача более чем тривиальная - нужен обыкновенный обход дерева.
Какой обход? Тут нужно дерево построить, а затем спускаться листа к корню (или Вы это имели ввиду под "обходом")
А вот как строить эту махину..?

И да.. если можно связать значение предка и его сына, то задача скатывается к циклу.. Осталось лишь вывести эту формулу.. Ну, кто смелый?
Poma][a вне форума Ответить с цитированием
Старый 07.04.2014, 17:14   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ребята, вы что на Докторскую идете?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2014, 17:22   #14
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ребята, вы что на Докторскую идете?
А почему-бы и нет? Вроде, как не запрещено.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 07.04.2014, 17:35   #15
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Какой обход? Тут нужно дерево построить, а затем спускаться листа к корню (или Вы это имели ввиду под "обходом")
А вот как строить эту махину..?
Да, обход дерева - это именно то, что вы описали - можно в книжках посмотреть, можно даже в вики. Обходы могут быть разные, но суть не меняется.
Цитата:
Пошаговый перебор элементов дерева по связям между узлами-предками и узлами-потомками называется обходом дерева.
(с вики)

Цитата:
А вот как строить эту махину..?
Хитрость олимпиадных задач в том, что махину строить не надо (60 уровней дерева это очень много) - если будем строить то не пройдем тесты по времени (я гарантирую). Тут нужна только одна ветка дерева и, мне кажется, есть тут магия цифр.

По номеру начальной задвижки наверняка можно определить уровень. По номеру уровня и номеру начальной задвижки - определить родитескую задвижку. Вобщем ИМХО, надо посмотреть на рис. 1, почесать репу и придумать формулу. Посмотреть на рис. 2, проверить формулу. Написать программу.
rrrFer вне форума Ответить с цитированием
Старый 07.04.2014, 17:48   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А почему-бы и нет? Вроде, как не запрещено.
Ну тогда во имя Ливерной - ГОСТ 1 вам, сударь, в помошь
Цитата:
rrrFer
Т.е.
Код:
s:string;
read(i);
case i of
 7,8:s:='4 2 1';
 9:s:='5 2 1';
 10,11:s:='6 3 1';
 4,5:s:='2 1';
 6:s:='3 1';
 2,3:s:='1';
end;
write(s);
Так чтоли?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2014, 17:54   #17
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Ребяты, либо я тупой, либо, задачка поставлена не корректно.
Либо, одно из двух.
Нельзя оптимизировать решение, простым обходом дерева. Ну, добрались мы до вершины, Каким боком, будут видны другие? Матрица, даёт соотношение. Дерево, такой особенностью не обладает.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 07.04.2014, 17:56   #18
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Так чтоли?
Я не понял что это.

Кстати, там на acmp есть обсуждение. Люди там подверждают, что есть тут игра числами и деерво строить не нужно. Номера вершины более чем достаточно. По номеру можно определить родительский узел, и делать это до тех пор, пока номером не станет единица (ну это очевидно даже).

В обсуждении пишут про то, что задача сильно связана с числами Фибоначчи. Если посмотреть на элемент из которого строится трубопровод - то можно согласиться (ну что-то такое есть), но лично я не решал задачу, а сходу не обнаружил как именно сюда вкрутить фибоначчи. Кажется, числа фибоначчи должны отражать количество узлов на уровне.

Цитата:
Нельзя оптимизировать решение, простым обходом дерева. Ну, добрались мы до вершины, Каким боком, будут видны другие?
Дочернюю стопудово можно получить по номеру. Дочитай задачу до конца, посмотри как там вершины нумеруются.

Последний раз редактировалось rrrFer; 07.04.2014 в 17:59.
rrrFer вне форума Ответить с цитированием
Старый 07.04.2014, 18:10   #19
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

rrrFer, Я так понимаю, в преобразованиях матиц в деревья и наоборот, Вы не очень. Любую матрицу, можно представить деревом, и любое дерево - матрицей. Закон транзакций.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 07.04.2014, 18:18   #20
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Я так понимаю, в преобразованиях матиц в деревья и наоборот, Вы не очень.
Не-не-не.. Все гениально..
Цитата:
Кажется, числа фибоначчи должны отражать количество узлов на уровне.
Прекрасная гипотеза.. Пойду проверю.. Спасибо!

Цитата:
Я не понял что это.
Виталий предполагает (к сожалению, неверно) что Вы собираетесь расписать варианты решения задачи для всех вершин ручками.. (если я всё правильно понял)

Цитата:
Матрица, даёт соотношение.
Какое соотношение? Чего к чему?
Матрица здесь вообще ни как не поможет.. тут только химичить с указателями и списками.. (или магия чисел, как предложили выше)
Poma][a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц