Этого треда уже нет.
Это копия, сохраненная 9 ноября 2014 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
159 Кб, 792x819
OLIMPIADKA #20 sage # OP #392648 В конец треда | Веб
гнидо в детстве заболел страшной неизлечимой болезнью - динамико-дриснёй головного мозга
заболевший человек теряет способность к визуальному опознаванию окружающих объектов и вынужден полагаться на чтение бирок с их названиями
в комнате гнидо к каждому предмету была приклеена бирка с его названием, пока сегодня его мать-наркоманка не сорвала все бирки, не перепутала в них буквы и не склеила их в одну длинную строку
теперь гнидо несчастлив, он совершенно заблудился в собственной комнате
поможем ему восстановить порядок!

на вход:
первая строка - предметы в комнате гнидо
вторая строка - склеенные вместе названия предметов с перепутанными в них буквами

вывести:
в первой строке - разделённую на части вторую строку ввода - список анаграмм названий предметов в комнате гнидо
во второй строке - вывести названия предметов так, чтобы каждый предмет был красивенько под соответствующей анаграммой из первой строки вывода

гнидо очень хочет найти дверь чтобы выйти в туалет; если ваша программа не уложится в 5 секунд - гнидо обосрётся
решения на джява/сцяла/кобол/с# должны сопровождаться детальными отчётами и документацией
решения на с++ должны вычислять ответ на этапе компиляции

http://ideone.com/6iVyd2
sage #2 #392659

>решения на с++ должны вычислять ответ на этапе компиляции


>работа производится с тем, что подается в stdin


ясно
#3 #392691
>>392648
Привет хаски-кун, опять ленивыми списками балуешься?

Вот тебе тестик, оптимизируй:
http://ideone.com/VeMSvT
22 Кб, 559x176
#4 #392694
алсо, что за ашот у тебя на оппике?
#5 #392695
>>392691

>zipWith


Что это за хуйня? Это обычный zip или чем-то отличается? Нахуй было добавлять это уродливое и неэстетичное With на конце?
#6 #392696
>>392695
http://www.haskell.org/hoogle/?hoogle=zipWith

zipWith generalises zip by zipping with the function given as the first argument, instead of a tupling function. For example, zipWith (+) is applied to two lists to produce the list of corresponding sums.
138 Кб, 1109x486
sage #7 #392700
>>392691
экий ты тестер ;з
#8 #392729
>>392700
>>392700
Тред еще не начался а оп уже соснул.
#9 #392732
>>392700

>член запчел


проиграл
11 Кб, 250x187
#11 #392949
>>392850
Извените я больше не буду
104 Кб, 320x350
#13 #393049
>>392960
Все равно не работает, Ашот-сан.
#14 #393050
#15 #393061
>>392695
zip = zipWith (,)
44 Кб, 490x288
sage #16 #393064
#17 #393406
>>392648
Душевная задача. Не дадим Гнидо обосраться — http://ideone.com/lVQpig
#18 #393439
>>393406
Что же ты наделал?! Гнидо обосрётся, увидев твой код.
#19 #393463
>>393406
макак-кун, даже не стараешься
http://ideone.com/GhfQzQ
#20 #393474
вариант на питоне

http://ideone.com/0Rwwzo
#22 #393501
>>393485

>слова с одинаковым набором букв


>слова, являющиеся частями других слов


в первоначальной задаче ничего такого не было
#23 #393504
>>393501
Ты имеешь в виду, что в тесте такого не было. Но даже первое решение Ашота(хаски-куна) все эти случаи учитывало.
#24 #393505
>>393474
Нечитабельная императивная лапша а-ля Си.
#26 #393509
>>393485

>склеенные вместе названия предметов с перепутанными в них буквами


У тебя ввод неправильный. Cначала перемешиваешь буквы, а потом склеиваешь.
#27 #393512
>>393509
da ty chto
http://ideone.com/nVpvSo
почему то у хаскибогов все работает
#28 #393515
>>393512

>da ty chto


Тебе ссылку на учебник по русскому языку дать? Или какое слово в процитированном предложении ты не понимаешь?
#29 #393516
>>393515
Алсо, без этого условия задача не имеет смысла, потому что тогда можно просто взять готовое слово и пикать из перепутанного подходящие буквы. Линейная сложность - элементарное решение.
#30 #393518
>>393515
>>393516
ты тупой что ли
слова - ab, ba, abab
перепутываем буквы: ab, ab, aabb
склеиваем:
ababaabb
что не так?
50 Кб, 460x300
sage #31 #393521
она срывала бирки в каком-то порядке
необязательно в таком же как во входных данных
#32 #393548
>>393516
где ты линейную сложность увидел, ткни пальцем?
175 Кб, 791x815
sage #33 #393551
>>393050
незна где запустить http://pastebin.com/sNfFthbD
работает так себе
видимо твои тесты неинтересны моим программам и они ленятся
сам-то вбросишь кроме тестов чо?

>>393406
>>393474
wrong answer для:
abab ab ba
ababaabb

>>393506
медленновато:
http://ideone.com/p4qIj8

> veshi.permutation.each do


;D
#34 #393563
Ещё одно решение "в лоб" на Scala: http://ideone.com/7IKaKq
А теперь немного кукаретики:
1. Глядите, как я хитро наебал систему и заюзал красно-чёрные деревья для log-удалений вместо линейных, от которых соснул хаскель
2. Само решение тупое и отличается от полного перебора только отсечением неподходящих префиксов остатка решения
3. По идее, единственный класс случаев, от которых здесь нужен бектрекинг, связан именно с парами слов, в которых множество букв одного является подмножеством букв второго. Наверное, можно как-то оптимизировать это всё, включив цепочки таких слов в некие группы и делая бранчинг только на членах одной группы, слово-"представитель" которой с точностью до перестановок букв является префиксом остатка анаграмной строки.
sage #36 #393568
>>393563
клёво, самое быстрое решение пока

>>393566
что-то не так
http://ideone.com/qxY6wn
#37 #393569
>>393566
Ебать дибил. Выше же уже соснули на этом: http://ideone.com/YWal4I
#39 #393582
>>393581
Никогда не сдавайся! Когда-нибудь ты обязательно угадаешь: http://ideone.com/UGkBFb
#40 #393584
А я вдруг понял суть динамических петухов. Она заключается в жадности. Кроме алгоритмов, жадность эта наиболее ощутимо распространяется на их отношение ко времени. Свободное время своё они зажмочивают на изучение настоящих языков программирования, а рабочее - на написание качественных решений. Последним они предпочитают быстрый и грязный быдлокод и последующее впаривание оного несведующему заказчику. И это только частный случай. В других областях человеческой деятельности они будут называться как-нибудь иначе, но суть везде одна и та же - присосаться к самым лакомым кусочкам, минимально напрягаясь и создавая иллюзию полезного действия. Динамический петух - это самый страшный, единственный паразит, который без труда маскируется под партнёра, коллегу, или даже друга.
#41 #393605
>>393584

>присосаться к самым лакомым кусочкам, минимально напрягаясь и создавая иллюзию полезного действия


Как что-то плохое.
#42 #393648
http://ideone.com/e0qDMc
Блядский сайт, никак не обновит древнюю версию пифона…
http://pastebin.com/zwQGfJkn
тестер-кун !XVCSUy9ZzE #43 #393655
>>393648
пыхтон вынырнул из 1го колодца, но утонул во втором
http://ideone.com/Dmj5VA

вечером еще попытаюсь утопить скалагосподина.
#44 #393712
>>393655
тебе не приходило в голову, что слово может быть больше чем из 2 подслов?
#45 #393813
>>393563
ab ba abab
ababaabb
#46 #393814
А скажите-ка мне, как вы отличаете "ab" (анаграмма "ab") от "ab "(анаграмма "ba"). Сдается мне, что задним числом. У того же ОП, если порядок анаграмм в строке поменять, всё ломается.
sage #47 #393823
>>393814
давай тест где ломается
#48 #393893
>>393813
Я круто сам себя наебал. Почему-то я решил, что для не-очень-хорошего, но корректного Ordering для TreeSet достаточно будет указать такую _<_, двойной зажим которой !(a < b) & !(b < a) будет эквивалентен a = b, но это оказалось совсем не так:
https://github.com/scala/scala/blob/v2.11.2/src/library/scala/math/Ordering.scala#L200
С моим _!=_ compare, спецификация которого утверждает, что он возвращает 0 при равенстве, -1 при меньше, 1 при больше, становится некорректен: не существует сюрьективной функции из {true,false} в {-1,0,1}, потому как минимум 1 элемент кодомена никогда не будет возвращаться. Например, если это 1, значит, в соответствии со спецификацией compare,
для любых a и b, compare(a,b) != 1 <-> !(a > b) <-> a <= b,
Конкретизируя a и b для любых фиксированных (x, y), а потом (y, x): x <= y & x >= y
Откуда следует, что для любых a и b, a = b.
Понятно, что Ordering, допускающий такие выводы по equational reasoning, не сулит ничего хорошего.
Зато я придумал, как всю эту хуету починить и очень существенно оптимизировать, попозже напишу.
sage #49 #393894
>>393823
Не могу воспроизвести, пока будем считать, что я ошибся.
sage #50 #394025
>>393893
Вроде программист, а мысли свои излагать не умеешь. Проще было по строчке кода понять суть проблемы, чем по твоей простыне.
#51 #394351
>>393563

>382272KB


Охуеть.
#52 #394509
>>394351
Ньюфажек.
sage #54 #394677
ну чо
#55 #394712
>>394558
стало быть, скалу по дефолту выпиливаем, ибо она ни в одну дверь не пролезет.
#56 #394722
>>394712
Всё что на jvm ведет себя на ideone аналогично.
#57 #394814
>>394025
Я писал для людей, понимающих, что такое Ord(ering), красно-чёрные деревья, сюръекция, equational reasoning, и могущих в квантификаторы и элементарные математические рассуждения типа "!(a < b) & !(b < a) <-> a = b", и считаю, что очень хорошо всё объяснил. Даже им нельзя изложить проблему одной строчкой кода, не то что всем остальным.
>>393563

> я придумал, как всю эту хуету починить и очень существенно оптимизировать, попозже напишу.


Сделал, но моя оптимизация оказалась не такая уж существенная: http://ideone.com/NLxEFs
#58 #394817
Да уж, yield для таких переборных задач немного сокращает и упрощает код. Последнее решение на scala почти эквивалентно последнему решению на питоне, но немножко сокращает пространство перебора, запихивая в Bag (питоновский Counted - что-то подобное, как я понял) отсортированные строки, а порядок восстанавливая потом.
#59 #394882
Немножко разобрался со скала-компрехеншонами и порефакторил: http://ideone.com/8AKTBi
#60 #394936
>>394814
Ох, вы только посмотрите на этого умника.

>Я писал для людей, понимающих


Писал ты для себя, чтобы потешить своё самолюбие. Если бы ты действительно хотел донести суть своей пустяковой проблемы до остальных будто она кому-то интересна, то изложил бы её в двух словах.
#61 #394942
>>394936
Суть проблемы: некорректный инстанс тайпкласса Ordering. Но это само-по-себе неинтересно. Забавно то, как из при него можно вывести, что любые два слова равны. Это какбы поучительный пример, что не надо грозить отношениям строгого порядка.
#62 #394960
>>394942

>Забавно то, как из при него можно вывести


Вывод уровня /pr/: чудеса коммутативности.
Оленю понятно, что fromLessThan требует некоммутативную операцию, на что намекает LessThan
#63 #394969
>>394960
То, что привычные less-than некоммутативны - это, конечно, очевидно, а вот то, что КЧ-дерево станет работать плохо с немножко неправильным Ordering - это ещё не факт. Я же объяснил изначальную интуицию (думал, что от Ordering требуется только сохранять равенства). Более того, с таким поломанным Ordering оно даже работает в нескольких примерах из треда.
#64 #394971
Я думал, что это будет примерно эквивалентно тому, как если бы я занумеровал все свои слова последовательными int и вставлял друг за дружкой - не самый лучший сценарий для RBT, но оно ведь балансируется.
28 Кб, 225x225
sage #65 #394981
>>394882
да твоё решение всех ушатало (если наш тестер не найдёт ошибку опять)
так что заползай на подиум, тебе есть чем гордиться
#66 #395011
>>394981
За весь тред не было ни одного работающего решения, кроме жабоговна?! Нипарядок.
#67 #395050
Перлобог в треде! Все обратно под шконку.
http://ideone.com/mXXYrc
#68 #395060
http://ideone.com/JVrwu5
Сосают все!
#69 #395065
>>395060
Нет, ты!

>abababababababababababaabb


>abab ab ab ab ab ab ab ab ab ab ab ab


>abab ab ab ab ab ab ab ab ab ab ab ab


Что у тебя с выводом? Жульничаешь небось?
И не лень тебе на этом недоязычке писать было?
#71 #395071
>>395050
user ~/lua $ time cat data.dat | perl perl.perl
ab ab ab ab ab ab ab ab ab ab ab aabb
ab ab ab ab ab ab ab ab ab ab ab abab
real 0m0.004s
user 0m0.001s
sys 0m0.001s
user ~/lua $ time cat data.dat | luajit olimpics.lua
abab ab ab ab ab ab ab ab ab ab ab ab
abab ab ab ab ab ab ab ab ab ab ab ab

real 0m0.002s
user 0m0.000s
sys 0m0.000s
user ~/lua $ time cat data.dat | perl perl.perl
ab ab ab ab ab ab ab ab ab ab ab aabb
ab ab ab ab ab ab ab ab ab ab ab abab
real 0m0.003s
user 0m0.001s
sys 0m0.000s
user ~/lua $ time cat data.dat | luajit olimpics.lua
abab ab ab ab ab ab ab ab ab ab ab ab
abab ab ab ab ab ab ab ab ab ab ab ab

real 0m0.002s
user 0m0.000s
sys 0m0.000s
user ~/lua $ time cat data.dat | perl perl.perl
ab ab ab ab ab ab ab ab ab ab ab aabb
ab ab ab ab ab ab ab ab ab ab ab abab
real 0m0.005s
user 0m0.003s
sys 0m0.001s
user ~/lua $ time cat data.dat | luajit olimpics.lua
abab ab ab ab ab ab ab ab ab ab ab ab
abab ab ab ab ab ab ab ab ab ab ab ab

real 0m0.002s
user 0m0.000s
sys 0m0.001s
user ~/lua $

Кратко: перл соснул
#71 #395071
>>395050
user ~/lua $ time cat data.dat | perl perl.perl
ab ab ab ab ab ab ab ab ab ab ab aabb
ab ab ab ab ab ab ab ab ab ab ab abab
real 0m0.004s
user 0m0.001s
sys 0m0.001s
user ~/lua $ time cat data.dat | luajit olimpics.lua
abab ab ab ab ab ab ab ab ab ab ab ab
abab ab ab ab ab ab ab ab ab ab ab ab

real 0m0.002s
user 0m0.000s
sys 0m0.000s
user ~/lua $ time cat data.dat | perl perl.perl
ab ab ab ab ab ab ab ab ab ab ab aabb
ab ab ab ab ab ab ab ab ab ab ab abab
real 0m0.003s
user 0m0.001s
sys 0m0.000s
user ~/lua $ time cat data.dat | luajit olimpics.lua
abab ab ab ab ab ab ab ab ab ab ab ab
abab ab ab ab ab ab ab ab ab ab ab ab

real 0m0.002s
user 0m0.000s
sys 0m0.000s
user ~/lua $ time cat data.dat | perl perl.perl
ab ab ab ab ab ab ab ab ab ab ab aabb
ab ab ab ab ab ab ab ab ab ab ab abab
real 0m0.005s
user 0m0.003s
sys 0m0.001s
user ~/lua $ time cat data.dat | luajit olimpics.lua
abab ab ab ab ab ab ab ab ab ab ab ab
abab ab ab ab ab ab ab ab ab ab ab ab

real 0m0.002s
user 0m0.000s
sys 0m0.001s
user ~/lua $

Кратко: перл соснул
#72 #395072
>>395067
Щас починю
#73 #395073
>>395071
Код ремонтируй, нагибатор.
#75 #395079
>>395076
Малаца, закостылил.
Только вывод-то все равно не такой!
http://ideone.com/b4Kmgk
#76 #395090
>>395079
Мне похуй какой у тебя вывод.
Задача допускает много решений.
Из того как строка склеена нельзя сделать вывод о том, как она была разрезана.
На малых длинах строк и их количествах мое решение быстрее. Давай большие данные ( типа цепочки днк) и будем оптимизировать, или создавай новую олимпиадку с переписаным условием.
Ты соснул уже второй раз за тред.
#77 #395091
>>395090
Хотя на маленьких алфавитах тоже мое решение быстрее
sage #78 #395093
>>395090
неправильно
http://ideone.com/TAA7xg
#79 #395094
>>395090
Условия внимательней прочитай, прежде чем петушиться.

>вывести:


>в первой строке - разделённую на части вторую строку ввода - список анаграмм названий предметов в комнате гнидо


>во второй строке - вывести названия предметов так, чтобы каждый предмет был красивенько под соответствующей анаграммой из первой строки вывода

sage #80 #395095
>>395050
пиздец какой ;0
опиши алгоритм?
#81 #395098
>>395094
Хуй соси мудила
Ты не можешь определить в суфиксе vatj откуда у тебя t из стула стола или кровати.
Впрочем просто продолжай посасывать
#82 #395100
>>395098

>Ты не можешь определить в суфиксе vatj откуда у тебя t из стула стола или кровати.


Лол, в этом и есть суть задачи.
#83 #395101
>>395098
>>395100

>в этом


относится к "определить", а не "не можешь"
А то вдруг до тебя опять не дойдет.
sage #84 #395103
#85 #395104

> суть задачи


В условии.
В нем не сказано: мамаша нарезает на крупные кусочки.
В нем не сказано: вывести в порядке следования первых букв анаграмм
В нем не сказано: разделить строку на анаграммы заданных слов так, чтобы количество частей на которые нужно разрещать эти слова было минимальным.
Все что ты "подразумеваешь" нужно описывать словами.
#86 #395107
>>395100
давай ты продемонстрируешь скиллы
Есть три слова:
stol stul krovatj
Я разрезал на 14 частей, склеил, получилось
stolstulkrovatj
Из какого слова первая t?
sage #87 #395110
>>395107
ты:
- либо тралишь
- либо не понял условие
в первом случае:
во втором: перечитай оп-пост и посмотри примеры
#88 #395111
>>395104

>> суть задачи


>В условии.


Ты уже почти понял. Молодец.
Осталось только его прочитать и немножечко напрячь мозги. Самую малость.
Надеюсь, дальше ты уже разберешься без моей помощи.
#89 #395112
>>395110
Я просто решил задачу другим способом, который показывает двусмысленность условия.

> посмотри примеры


а, т.е. олимпиадка в духе: скопируйте мое решение? ну ты и комик! Такой выдумщик!
#90 #395114
>>395111
Тебе бы мозги изредка напрягать.
sage #91 #395115
>>395112
тралишь значит
#92 #395116
>>395111
Если такой умный, может решишь >>395107 ?
#93 #395117
>>395115
Лол
Я кстати могу переписать так, чтобы ответ был еще другой, почти совпадал с твоим. Не считаю нужным конечно, но если очень попросишь...
#94 #395118
>>395112
Тогда на, соревнуйся с другим альтернативным решением. http://ideone.com/Rcu3xy
#95 #395121
>>395095
Все сводится к проверке на наличие сортированной анаграммы из входной строки в таблице anagram.
sage #96 #395122
>>395117
Нихуя не понял, но давай
#97 #395123
>>395118
Изи мод

http://ideone.com/FagssV

В исходной строке анаграмма не такая.
Но на самом деле мы оба знаем, что даже этого нет в условии
#98 #395124
>>395122
Завтра, если будет настроение: сегодня свет отключили
sage #99 #395126
>>395124
ну пж
#100 #395146
>>394981
У меня просто багира, что решение на питоне короче, и что там в стандартной библиотеке есть Bag, а в Scala нету, хотя в оной самая выдроченная стдлиба коллекций за всю историю мейнстримных ЯП.
#101 #395148
Я сначала думал, что последнее питоновое решение хуйня какая-то, а потом вчитался и понял, что там то же самое. В целом, короче в первую очередь за счёт yield на уровне методов - но это сохраняет всего пару строчек самого кода поиска - и, существеннее, за счёт ввода-вывода - но там какое-то адовое динамическое петушение:

> a, b = input(), input()


> print("\n".join(map(" ".join, zip(next(yoba(a, b))))))

#102 #395154
>>395116
Из слова stol.
Получение исходной строки:
Берем каждое слово, перепутываем в них буквы.
Получившиеся слова из перепутанных букв конкатенируем в произвольном порядке.
Как бы косячно не было написано условие, имеется в виду именно это.
32 Кб, 405x423
sage #103 #395155
>>395146
эх
смори, этот ввод: http://ideone.com/sSNnPk
повторим 5 раз: http://ideone.com/FATOlq

однако: http://ideone.com/tz78Om
sage #104 #395156
да норм условие чо вы это самое))
#105 #395163
>>395155
Оказалось, я в одном месте проебал ленивость: http://ideone.com/YzZhw3
На примере из >>393655 всё-равно взрывается.
#106 #395165
Опять np-complete подсунули? Хрень какая.
Я вот понимаю, были бы задачки с очевидным алгоритмом O(n^4), с хитровыебанным O(n^3) с потенциальным снижением до O(n^(8/3)) или с применением какого-нибудь ада из глубин топологии до O(nnln(n)). Это было бы интересно.
А тут всё превращается костыльную задрочку под конкретный инпут (может ещё не превратилось, но к этому идет).
Щас вот пойдут костыли, которые специально обрабатывают одинаковые слова.
#107 #395167
>>395165
Сможешь ли ты доказать, что она NP-полная?
49 Кб, 809x447
sage #108 #395177
>>395050
что-то не так, перняша: http://ideone.com/fkpD5T
ведь: http://ideone.com/ALdQw4
графики всякие sage #109 #395178
количество дней: 7
количество постов: 107
количество решений: 8
количество верных решений: 0
#110 #395179
>>395154
Ох блядь. Ты наконец смог сформулировать условие!
#111 #395183
>>395179
Это был мой первый пост itt.
#112 #395209
>>395165
ты че пидор, какая нп-полнота? для этой задачки есть решение О(н), причем н - число слов.
#113 #395211
>>395209
Лл, даж буквы в словах не надо читать? Охуительные истории, иди нахуй.
#114 #395213
>>395209
Лол ок. Давай свой алгоритм, я на тебя контрпримером поссу.
#115 #395227
>>395183
Тогда ты молодец
#116 #395230
Пример двусмысленности уже исправленного условия:
http://ideone.com/FtzGKB
#117 #395238
>>395230
А где проблема?
#118 #395241
>>395238
В том что "правильная" анаграмма для odindva - dvaodin
#119 #395243
>>395241
Это где в условии такое написано? Ты какую-то свою задачку придумал и хочешь, чтобы условие её описывало?
#120 #395247
>>395241
Анаграмма - это любое слово, составленное из букв данного. Любое слово является само-себе-анаграммой.
#121 #395249
>>395230
Ну какбе да, ответов может быть несколько. Это вообще нормально для задач. Требуется найти хотя бы одно решение.
#122 #395251
Эта задачка может быть тоньше, чем кажется. Вероятно, ОП в конце нас затиранит каким-то хитрым решением со строкоиндексирующей структурой.
#123 #395256
>>395251
Один хрен она просто не решается.
Могу вот ещё алгоритм предложить.

Для каждого символа входной строки делаем список всех анаграмм.
Одна потенциальная анаграмма - вершина графа.
Это O(nmk), где n - слов, m - длина строки, k - длина самого длинного слова.
Ребро (ориентированное) — от анаграммы A длины z, начинающейся с символа i, до всех анаграмм B, начинающихся с символа i+z.

Можно произвести элиминацию вершин, из которых нет ребер кроме вершин, которые по идее должны указывать на конец строки.

Дальше каждому слову (точнее классу эквивалентности по отношению "является анаграммой") можно присвоить простое число в виде веса.
Нужный нам вес - произведение весов всех слов.
Эти же веса навешиваем на вершины.
Дело за малым — найти путь заданного веса в графе. Задача несколько упрощается из-за гарантированного отсутствия циклов. Что не отменяет её np-полноты.

Есть ощущение, что это не будет быстрее поиска в глубину, который тут в каждом решении. Хотя на многих примерах элиминация позволит очень сильно упростить граф. Например, на пресловутом ab ab ... abab и abab...aabb
#124 #395257
Божественная джава
http://ideone.com/MNaoZF
#125 #395260
>>395256
Написано красиво, только не очень понятно.

> Ребро (ориентированное) — от анаграммы A длины z, начинающейся с символа i, до всех анаграмм B, начинающихся с символа i+z.


Для этого же нужно пройтись по всем factors строки (по всем подстрокам s[i,j], 0 <= i < j < len(s)), правильно?
#126 #395263
А, хотя нет. Наверное имелось в виду, что мы берём s[0], смотрим анаграммы ans(s[0]) с ним, каждую x делаем вершиной и соединяем рёбрами со всеми анаграммами ans[s[len(x)]] и т.д.
#127 #395269
>>395263
Да.
Это далеко не самое сложное в задаче.
#128 #395270
>>395256
Найди в коде на джаве поиск в глубину.
#129 #395277
>>395270
У тебя поиск в ширину. Гарантированно говено работает на всех типах входных данных.
#130 #395278
>>395270
Алсо,

>boolean checkAnagramDestructive


проиграл с подливой.
Вся суть жабабыдлокода.
#131 #395285
>>395277
Охуенно, и он имеет сложность О(н).
#132 #395286
>>395278
Напиши быстрее, лалка
#133 #395291
>>395285>>395286
Оно бы работало ещё
http://ideone.com/ygcCpM
#134 #395300
>>395291
А для этого контрпример найдешь?
Я заменил макс на мин.
http://ideone.com/Z3AYH5
#135 #395302
>>395300
Вообще упало.
http://ideone.com/S1FIIe
#136 #395304
>>395302
Там не печатаемый символ какой-то очевидно.
http://ideone.com/BBxbkD
все равно соснул. Да. нужно поиск писать.
#137 #395380
>>395304
Я не просто так писал, что задача сложная.
Сначала перебрал в голове все возможные жадные алгоритмы и придумал по контрпримеру на каждый.
Всё никак не могу найти нп-полную задачу, которую можно к этой свести. Однако полиномиальный алгоритм тоже не придумывается.
#138 #395386
Продолжаем разговор.
http://ideone.com/zb5y0A
#139 #395388
>>395380
К раскладыванию говна всякого можно свести.
sage #140 #395389
217 Кб, 1387x1203
sage #141 #395392
пока что нет ниодного решения работающего правильно и не отсасывающего при смешных входных данных
многообещающей всего выглядели:

хитрожопный перебор на сцяла с какими-то там деревьями - http://ideone.com/FATOlq
обфусцированный жадник на перл - http://ideone.com/fkpD5T

алсо похоже что некоторые участники пытаются прийти к эффективному решению изменяя свой код случайным образом и постя его сюда
ждём
#142 #395394
Какая ужасная, отвратительная олимпиада.

С тележкой лучше была.
sage #143 #395395
>>395394
с тележкой даже до 100 постов не дошло
#144 #395398
>>395395
100 постов на страхе, боли и отчаянье. Нашел чем гордиться. Ты еще политический сравню тут разведи, сразу 300 постов будет.
sage #145 #395399
>>395398
не будет
новый модератор банит за слово "украина"
#146 #395401
>>395399
И все равно злая олимпиадка.
sage #147 #395404
>>395177
Зато быстро и лаконично.
sage #149 #395406
sage #150 #395407
>>395405
неправильный ответ:
http://ideone.com/6FjJAY
#151 #395408
>>395407
Почему неправильный?
sage #152 #395409
>>395408
ab abab не в том порядке идут
a что такое search_memo?
sage #153 #395410
>>395409
типа search nemo, только search memo ;D
#154 #395411
пока что нет ниодного варианта условия непротиворечивого и сформулированного литературным языком

алсо похоже что оп пытается прийти к победе путем изменения требований случайным образом, бампая тред с сажей и постя сюда коментарий "неправильно"
ждём
sage #155 #395413
>>395410
;DDDD
xarooo6)
#156 #395414
>>395409
А, у меня в обратном порядке результат выводится.
Сейчас починю.
Все ради тебя, душечка.
#157 #395415
>>395409
немоизация
41 Кб, 450x280
sage #159 #395422
>>395418
да щас правильно
определённо первое место
#160 #395423
>>395418
Прикольно, а что ты там намемоизировал? Можешь кратко прояснить?
#161 #395426
>>395423
Функция поиска принимает список слов и строку в которой нужно искать. Возвращает список пар слово-анаграмма и маркер успеха. Работает рекурсивно.
Для конца строки она постоянно вызывается с одинми и теми же аргументами.
Ее и мемоизировал.
Еще сортировку строки, но это так, ерунда.
#162 #395427
>>395426

> список пар


пару списков.
sage #163 #395428
>>395422
Поторопился ты с награждением:
$ cat data{,2}.txt | lua /tmp/pr.lua
huy tam
http://pastebin.com/pLPBdGjC
#164 #395429
>>395428
Юникод. Хачкаль тоже не факт, что будет работать. Можно переделать, но влом.
sage #166 #395431
>>395429
>>395430
http://pastebin.com/sEH9NYMg
С транслитом тоже не работает.
#167 #395432
>>395431
Знаки препинания. Поправить гораздо легче. Просто регэксп поменять.
sage #168 #395434
>>395432
Оставил только символы [a-z]: результат тот же.
#169 #395436
>>395434
ну щас потестирую, проверь такой вариант
http://ideone.com/P6KLTf
#170 #395438
>>395436
>>395434
у меня новый вариант отработал успешно в luajit за
real 0m0.193s
user 0m0.157s
sys 0m0.037s
sage #171 #395439
>>395436
>>395438
Внатуре работает. Не в том файле символы заменил, оказывается.
sage #172 #395440
Решение на скале висело на этих вхоных данных полчаса безрезультатно.
193 Кб, 1366x2048
sage #173 #395459
щас ждём линейное решение на конечных автоматах
#174 #395461
>>395459
моар няши
#177 #395467
>>395459
>>395464
О Б-же, кто эта красавица? Я так хочу лизнуть её вагиночку, хотя бы пару часов, вы просто себе не представляете.
sage #178 #395468
>>395467
это один из участников
#179 #395474
>>395459
Погоди-погоди... Ты что хочешь сказать, что вот это на пикче - это Носатая? Это наша Даша в такое превратилась? Деад_Телеграфист? Скажи что это не так, прошу.
sage #180 #395475
>>395474
это не так
но я говорю это только ради тебя
201 Кб, 1366x2048
sage #181 #395476
эхх
#182 #395483
>>395459
А по делу никто не написал.
Там получается НКА, который надо детерминировать. Такой бздыщ будет, что мама не горюй. При этом сам по себе НКА тоже будет гигантский. Хуй с ней, с памятью, ты его строить полгода будешь.
366 Кб, 1365x2048
sage #183 #395485
>>395483
значит надо какой нибудь хитрожопый автомат
вот есть http://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_string_matching_algorithm (корасик азхаахах)))
надо придумать что-то подобное: anagram-matching-automaton
509 Кб, 1365x2048
sage #184 #395488
ой простите, господин полицейский
вот, зацензурил
#185 #395490
>>395485
А это не хитрожопый автомат, это обычный автомат для поиска подстроки в строке.
Во-первых, его самого сложно строить. Он хорошо работает, когда тебе надо искать недлинную строку в охуительной длины тексте, потому что сложность поиска сильно зависит от длины слова, а от текста только линейно и эти сложности складываются, а не перемножаются, как в других алгоритмах.
Здесь же тебе нужно проверить строку на соответствие. То есть длина пути в автомате будет равна исходной строке.
Более того, этот автомат ещё не так сложно построить для обычно строки, здесь же его надо построить для всевозможных перестановок кусков строки, при этом внутри кусков тоже должны быть обработаны всевозможные перестановки.
sage #186 #395494
>>395490
[мечты]
хочу автомат
он будет хитрожопо склеен из anagram-matching-automatonов
мы бы скармливали ему вторую строку ввода по одной букве
и он бы быстро разрешал коллизии, когда несколько слов из словаря являются анаграммо-префиксами хвоста бирки
с откатами он был бы похож на автомат ахо-карасика
при этом он не будет слишком большим и строится за поли время
[/мечты]
#187 #395503
>>395485
Как думаешь она сделаем быстрее, минет или отличия функтора от монады?
113 Кб, 632x964
sage #188 #395504
>>395503
спешишь?
#189 #395507
>>395494
Ща, замутим недетерминированную машину Тьюринга и будем все задачки щелкать как орехи.
20 Кб, 604x372
sage #190 #395529
>>395507
замути хотя бы бесконечную ленту
#191 #395534
>>395529
Это-то без проблем. Конечная машина Тьюринга всё равно только конечное количество ячеек может посетить. А зациклившаяся машина Тьюринга — это багованная, ей можно и исключение кинуть.
39 Кб, 600x600
sage #192 #395538
>>395534
если машина зациклилась - надо сразу кидать исключение
#193 #395564
>>395485>>395504
Две охуенные фоточки, остальные слишком груснявые. Похилил бы её холи болтами, евпочя.
#194 #395568
>>395529
как же она тут очаровательна, антон!
151 Кб, 682x1024
sage #195 #395598
>>395564
>>395568
обворожительная хищница
#196 #395599
>>395598
Но что с ней на тех, других фотках? Она колется? У нее рак?
Кстати, "дед т-графист" здесь в спам листе, к чему бы?
#197 #395604
>>395598
>>395599
нет не хищница, нет не колется
просто у неё недоёб пизды и мозгов
страдалица кароч
люблю таких :3
#198 #395606
>>395599
сыроедение
#199 #395607
>>395606
Сыр постоянно ест что ли?
#200 #395608
>>395607
Подзалупный
#201 #395609
#202 #395611
Как же меня бесят мудаки, которые постят фото своих тян на бордах.
#203 #395614
Интересно, достаточно ли хороша моя тян? Пойду-ка в программаче запощу, посмотрю что пацаны скажут!
#204 #395616
>>395614
Давай. Уж мы-то оценим по достоинству.
#205 #395619
>>395611
Дамы украшают имиджборду
#206 #395620
Блять, давайте ближе к теме.
#207 #395622
>>395620
Все соснули у LUA
#208 #395634
>>395622
В том числе и хуй, который наваял на нем решение.
650 Кб, 3500x2333
sage #209 #395641
>>395620
спустя 150 постов у нас есть первое рабочее решение - >>395418
щас ищем решение за поли время
Тред утонул или удален.
Это копия, сохраненная 9 ноября 2014 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски