Список форумов ZCon ZCon
Соревнования по программированию
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Ваши решения для задачи "Длинная цепь"

 
Начать новую тему   Ответить на тему    Список форумов ZCon -> ZCon 2008
Предыдущая тема :: Следующая тема  
Автор Сообщение
Turbo
Site Admin


Зарегистрирован: 19.02.2006
Сообщения: 248

СообщениеДобавлено: Ср Апр 16, 2008 8:40 am    Заголовок сообщения: Ваши решения для задачи "Длинная цепь" Ответить с цитатой

В этой теме можно обсудить ваш подход к решению этой задачи.

Сколько времени вам потребовалось для решения? Использовали ли вы брутфорс?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Stanislav Markevich



Зарегистрирован: 21.02.2006
Сообщения: 12
Откуда: Москва

СообщениеДобавлено: Ср Апр 16, 2008 1:24 pm    Заголовок сообщения: Ответить с цитатой

В итоге решил так: нашел цепь длинною 1056 и 6 элементов вставил руками Wink
Цепь из 1056 нашел поиском в глубину: в качестве первого элемента брал все числа, а следующим в цепи выбирал то число, которое дает меньше вариантов перебора. Поиск обрывал после определенного числа найденных цепей.
Такое решение заняло около часа.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Sergey Kreys



Зарегистрирован: 15.04.2008
Сообщения: 2

СообщениеДобавлено: Ср Апр 16, 2008 5:48 pm    Заголовок сообщения: Ответить с цитатой

Все просто: находим перебором гамильтонов путь в заданном графе, и выводим его. Стартовую вершину мы знаем - у нее степень равна 1.
При ~хорошей реализации все находится примерно за 5 минут. Вручную можно было ничего не делать Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Stanislav Markevich



Зарегистрирован: 21.02.2006
Сообщения: 12
Откуда: Москва

СообщениеДобавлено: Ср Апр 16, 2008 6:18 pm    Заголовок сообщения: Ответить с цитатой

Sergey Kreys писал(а):
Все просто: находим перебором гамильтонов путь в заданном графе, и выводим его. Стартовую вершину мы знаем - у нее степень равна 1.
При ~хорошей реализации все находится примерно за 5 минут. Вручную можно было ничего не делать Smile

пробовал и не нашел. просто тупой перебор???
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DAle



Зарегистрирован: 21.02.2006
Сообщения: 24

СообщениеДобавлено: Ср Апр 16, 2008 10:33 pm    Заголовок сообщения: Re: Ваши решения для задачи "Длинная цепь" Ответить с цитатой

Turbo писал(а):
В этой теме можно обсудить ваш подход к решению этой задачи.

Сколько времени вам потребовалось для решения? Использовали ли вы брутфорс?


Сначала проанализировал степени вершин, нашлась одна вершина со степенью 1. С нее начинал поиск. Далее, на каждом шаге выбирал из соседних вершин вершины с минимальной степенью, делал их случайную перестановку и по очереди просматривал, пересчитывая степени при этом. В общем-то пришлось не сильно долго подбирать seed для генератора случайных чисел, чтобы нашелся ответ. Хотя идей еще была масса. На все ушло часа полтора.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Sergey Kreys



Зарегистрирован: 15.04.2008
Сообщения: 2

СообщениеДобавлено: Сб Апр 19, 2008 12:23 am    Заголовок сообщения: Ответить с цитатой

Stanislav Markevich писал(а):
Sergey Kreys писал(а):
Все просто: находим перебором гамильтонов путь в заданном графе, и выводим его. Стартовую вершину мы знаем - у нее степень равна 1.
При ~хорошей реализации все находится примерно за 5 минут. Вручную можно было ничего не делать Smile

пробовал и не нашел. просто тупой перебор???


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

* - при равенстве степеней выбирается вершина, исходя из каких-нибудь других соображений (здесь, как выяснилось, большой простор для творческих идей)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
xaxa3217



Зарегистрирован: 19.04.2008
Сообщения: 2

СообщениеДобавлено: Сб Апр 19, 2008 11:22 am    Заголовок сообщения: Ответить с цитатой

если честно, то сколько по времени поиск цикла шел? у меня 950 вершин сразу набирал, а до 1061 думаю пришлось бы пару деньков сидеть, если не больше.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
zhengxi



Зарегистрирован: 25.03.2008
Сообщения: 19

СообщениеДобавлено: Сб Апр 19, 2008 9:30 pm    Заголовок сообщения: Ответить с цитатой

xaxa3217 писал(а):
если честно, то сколько по времени поиск цикла шел? у меня 950 вершин сразу набирал, а до 1061 думаю пришлось бы пару деньков сидеть, если не больше.


В первой сотне уже был результат с 1061
Или повезло с рандомайзером, или путей такой длины есть очень много
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
astapoff



Зарегистрирован: 13.02.2007
Сообщения: 70
Откуда: Могилев, Беларусь

СообщениеДобавлено: Сб Июн 14, 2008 3:16 pm    Заголовок сообщения: Ответить с цитатой

У меня способ как-то меньше мудренный... Smile
Для каждого числа я находил количество других чисел, в которые может быть преобразовано это число. вот. оказалось, что есть одно число, которое может быть преобразовано только в два других числа. вот с этого числа и начинал строить последовательность. после каждого нового добавления, я для всех чисел пересчитывал вот это количество чисел, в которые могут они быть преобразованы... ведь я же добавил число в последовательность, значит некоторые числа, которые раньше могли в него преобразоваться, уже не смогут этого сделать... так я нашел 1055 чисел... оставшиеся числа тоже составили из себя цепь, но эту цепь нужно было впихнуть в середину говотовой цепи из 1055 чисел...

Кто не понял меня? Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов ZCon -> ZCon 2008 Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group