Блог пользователя yermak0v

Автор yermak0v, 9 лет назад, По-русски

Всем привет.
После того как yeputons разочаровал меня сказав, что эту задачу нельзя решить адекватным способом, и дал ссылку на полезные данные по макросам, я решил, что этим всем нужно поделиться со всеми.
Значит приступим.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +12
  • Проголосовать: не нравится

Автор yermak0v, 9 лет назад, По-русски

Всем привет.
Мне как программисту на С++ с некоторым, но таки, стажем стало интересно немного разобраться в ООП. Но сейчас не об этом.
Можно ли как-то создать такую функцию, которая для каждой переменной могла бы сказать ее идентификатор?
Магическим образом решение было найдено:

#define id(x) #x  

Но при чем тут ООП? Вот при чем: допустим у нас есть класс Point в котором есть координаты x и y. Можно ли как-нибудь написать метод внутри этого класса который возращал бы идентификатор объекта и его x и y?
UPD. макрос id работает поистине магически. Код cout << #x; не работает, тогда как c макросом все в норме.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +4
  • Проголосовать: не нравится

Автор yermak0v, 9 лет назад, По-русски

Привет, все.
На днях я придумал одну [очень] интересную задачу.
Собственно задача:
У нас есть ориентированный граф n вершин и m ребер. Вы находитесь в вершине 1. Также известно, что, будучи в вершине v вы пойдете в вершину u с определенной вероятностью. Также с некоторой вероятностью вы останетесь в этой вершине и не пойдете больше никуда. Очевидно, что сумма вероятностей прохождения по какому-то ребру и того, что вы останетесь на месте, — равна 1. Нужно посчитать вероятность с которой вы попадете в вершину to, начав свой путь с вершины 1.
Мое решение, а точнее сказать размышления о решении под катом.
UPD решение было найдено. Пару слов в конце.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +4
  • Проголосовать: не нравится

Автор yermak0v, 9 лет назад, По-русски

Всем привет.

Решил на днях поставить себе Ubuntu. Думал все просто: раз-два, скачал, поставил и радуешься. Но не тут-то было.

Моя проблема в том, что до этого я благополучно пользовался Windows 7 и о всяких там Линуксах даже не думал, и поэтому сносить винду не хочу. Но просто так взять и поставить Ubuntu рядом с Windows — не так уж и просто. Я раз восемь пробовал это сделать: и скачивал разные версии, и пробовал качать разными способами, и устанавливал с помощью wubu.exe, и с помощью флешки. Но результат один: возникает ошибка, хотя каждый раз возникает на разном этапе... То ли мои руки так сильно кривые, то ли я не знаю.
Так сообственно вопрос: какую версию лучше ставить, и как именно ее ставить, чтобы все это закончилось таки успехом?

Заранее большое спасибо.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

Автор yermak0v, 10 лет назад, По-русски

Только что я сидел разбирался с суффиксным автоматом (вроде бы все понятно и пишу норм, но если долго не писать забывается) и в примере задач увидел задачу из заголовка.
Ссылка на статью на e-maxx'e, там в примере задач она последняя.
Ну в общем убил я где-то минут 30-40 на то чтоб понять это, но толку нет. Не все так просто как казалось. Увы...
Но буквально пару минут я вспомнил о боре, и подумал: "а чего я хочу этого именно от суффиксного автомата, если это можно сделать в разы проще бором?"
Моя идея в том чтобы просто забросить все строчки в бор, а потом обходом в глубину (хотя зачем?) просто переходить по состояниям пока есть переход только по одной букве, иначе понятно, что уже общего префикса не будет. Идея проще простого, да и написать это очень легко.
Вот код.
Upd. Как же я люблю тупить... На e-maxx'e описано решение задачи о нахождении наибольшей общей подстроки. А префикс можно искать намного проще даже втупую, хотя втупую придется каждый раз пробегать за количество строк, чтобы сравнить равны ли соответствующие символы. Но все же этот алгоритм вполне можно использовать.
Извиняюсь за тупку, не судите строго.
Upd2. Да и идея наверное далеко не новая.
===========================================
И пользуясь моментом пару вопросов о автомате:
-Где можно было бы почитать о наибольшей общей подстроке нескольких строк, чтобы точно понять это?
-И раз уж пошел разговор о автомате, то можно ли, и как, сделать его персистентным? Т.е. добавлять символы очень удобно, но хотелось бы и уметь удалять их, хотя бы для начала по одному.
===========================================
Ура, я таки нашел в чем польза от этого способа. Немного изменив код, я пришел к онлайновости этого алгоритма. Каждый раз у меня будет хранится наибольший общий префикс для строк, которые у меня есть, а при добавлении новой, все пересчитывается во время добавления ее в бор. Код.
Если это такой же бесполезный алгоритм, скажите мне, как можно достичь такого же эффекта с онлайностью проще?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +2
  • Проголосовать: не нравится

Автор yermak0v, 10 лет назад, По-русски

Сегодня, когда дорешивал задачу 429C - Guess the Tree, сел почитать разбор на нее и наткнулся на задачу 327E - Axis Walking. Не очень много времени ушло на придумывание правильного(?) решения. Но попробовав сдать ее я прождал минут 40 пока очередь дошла до моей посылки, а потом увидел как та же очередь просто прошла мимо. Ну ладно — подумал я, и пересдал решение еще раз. Но его постигла та же участь... Сейчас жду чуда отправив третий раз. В чем собственно проблема, и стоит ли ждать ее исправления?
P.S. Кстати сразу после конца CR #245 добавился CR #246, а потом он исчез. Почему так?
P.P.S. Ура. Меня уже не игнорят. Но все равно тестировать никто не собирается...
P.P.P.S. Мало того что не тестирует, так еще и нельзя зайти дальше первой странички в статусе.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +23
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, По-русски

Сегодня в 15:00 MSK начнется третья командная интернет-олимпиада в обоих номинациях.

Зарегистрировать свою команду можно здесь.

Посмотреть свою номинацию можно здесь.

После окончания предлагаю обсудить задачи здесь.

Удачи.

P.S. Больше информации.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +15
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, По-русски

В воскресенье 06.10.2013 в 10:00 MSK будет проходить командная олимпиада для школьников.

Олимпиада будет проходить в базовой и усложненной номинациях.

Длительность в базовой номинации 3 часа, а в усложненной — 5 часов.

Зарегистрироваться можно здесь.

Свою номинацию можно посмотреть здесь.

После окончания предлагаю обсудить задачи здесь.

Good luck and have fun!

P.S. Больше информации здесь.

P.P.S. Соревнование окончено, как решалась F в усложненной номинации?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +19
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, перевод, По-русски

Привет всем!

Сегодня начнется Code War 2013

Правила контеста:

  1. Задачи станут видны в пятницу, 27 сентября 2013 в 15:00 часов IST и окончится 29-го Сентября в 15:00 IST.. Время в вашем часовом поясе.

  2. Это не командный контест. Это индивидуальное соревнование.

  3. Это соревнование доступно всем. Кто-угодно может поучаствовать и выиграть призы. Но претендовать на призы можно только зарегистрировавшись здесь.

  4. Все языки поддерживаемые codechef будут поддерживаться в соревновании.

  5. Ваше решение будет тестироваться на некотором наборе тестов. Ввод и вывод вашей программы должны соответствовать примеру. Пробелы в выводе будут проигнорированы.

  6. По всем вопросам во время контеста обращаться на [email protected].

  7. Все участники должны соблюдать правила CodeChef.

Good luck and have fun to all!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +19
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, По-русски

Всем привет.
Когда-то давно я писал как много пользы может принести бор, если его использовать не по его назначению. ссылка
Одним словом, если написать сортировку подсчетом, и вместо обычного массива для подсчета использовать бор как ассоциативный массив, то можно добиться асимптотики O(n) с не очень большой константой. Т.е. просто закинуть все числа в бор и после этого дфс-ом пройтись по состояниях (тем самым просто выводить числа в лексикографическом порядке).
Но придется пожертвовать памятью, т.к. каждая вершина бора будет содержать ссылки не следующие вершины для каждой цифры.
P.S. Для корректной работы все числа надо дополнить лидирующими нолями.
UPD. код
Но мне интересно есть ли задачи где удобнее использовать этот алгоритм вместо квик сорта и/или других сортировок за O(n * log(n)).

Полный текст и комментарии »

  • Проголосовать: нравится
  • +4
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, По-русски

Только что окончился контест Procon 2013 на Codechef http://www.codechef.com/PRCN2013/
Предлагаю здесь обсуждать решения задач. Как решать 1-ю?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +13
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, По-английски

Hi all.
I want to learn the divide and conquer technique. I'm read about it on wikipedia and other not well-known sites and understood this technique, but now i want to practice it.
Anyone know where i can solve problems on this techinque?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +9
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, По-английски

Hi all.
Today at 16:00 UTC will starts June Cook-Off 2013 on Codechef.
GL & HF to all!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +19
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, По-русски

Привет всем.
Сразу приведу ссылку на задачу http://informatics.mccme.ru/moodle/mod/statements/view.php?id=2307.
Как такое вообще возможно?
Или же это специфика функции math.sqrt() реализированной в питоне?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, По-русски

Когда я пробую посмотреть правку комментария заходя в прошлые правки ничего не меняется.
Конечно понимаю, что это может быть совпадение, но все же не в большинстве же комментариев.
P.S. Браузер Chrome.
P.S.S. Для примера попробую написать комментарий к этому блогу, и сделать в нем правку.
У кого-то возникала такая проблема?
P.S.S.S. Я нашел в чем баг, и он таки специфический.
Если добавить в начале:

<blockquote>
Какой-то текст...
</blockquote>

— то все правки пропадут, но после добавления нормального комментария — они снова появлятся.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +78
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, По-русски

Доброго времени суток %username%.
Сегодня столкнулся с задачей, в которой решение чуть-ли не брут с помощью set'а, и релиз халявный, но не все "коту масленица".
Разглашать задачи и их решения нельзя до окончания отборов, и поэтому я ничего и не буду говорить.
Но мизерная часть задачи — надо найти количество элементов меньших либо равных данного, или же просто номер элемента в set'е, и, увы, сделать это — у меня не получилось. Надеюсь понять, что за задача не будет легко :)
У меня есть итератор на начало set'а, и итератор на элемент. Как найти расстояние от первого ко второму, быстрее чем функция distance (т.е. не за линейную сложность), и возможно ли это вообще?
P.S. Итераторы двунаправленные (стандартно в set'е), если кто не знает.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +7
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, По-русски

Доброй ночи, сообщество кодефорсес.
Я на днях от скуки попробовал писать Windows приложения.
С одной стороны это не очень сложно, но самому учится без учителя сложновато.
С Интернетом у меня получилось написать самое убогое приложение, но этого мало.
Подскажите, кто в этом не нуб, по чем вы учились? И что у вас в результате мучений получилось?
Буду очень благодарен.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +7
  • Проголосовать: не нравится

Автор yermak0v, 11 лет назад, По-русски

При попытке дорешать какой-то контест выдает ошибку 405:

Что это за баг?
P.S. Баг только при дорешке через соревнования.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +19
  • Проголосовать: не нравится

Автор yermak0v, 12 лет назад, По-русски


Привет всем!
Кто мог бы рассказать про Полигон побольше и по-понятнее? Пожалуйста, объясните:
1) Как добавить большие тесты на задачу в Полигоне, или как написать скрипт, для их генерации?
2) Что такое Package'ы? И как ними пользоваться?
3) Можно ли свой чекер добавить каким-то способом?
4) Что такое валидатор? тут все ясно а нет не ясно.
5) Какие это Well-formed тесты?
6) Что делать в вкладках Stresses и Issues?
7) Есть ли смысл писать разбор задачи в General info/Problem tutorial?
8) Как добавить пользователя в авторы задачи? При добавлении у другого пользователя просто появляется пустая задача с тем же именем. Что с этим делать?
UPD 9) Как написать с новой строки?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +4
  • Проголосовать: не нравится

Автор yermak0v, 12 лет назад, По-русски

Как добавить юзерскрипт в Хроме? В Огнелисе с Greasemonkey все просто, а в Хроме я не могу найти как. Расскажите, пожалуйста. Не предлагать: поищи в гугле etc. Все, что я нашел фигня, и не работает.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +9
  • Проголосовать: не нравится

Автор yermak0v, 12 лет назад, По-русски

Если в боре заменить буловское поле leaf на поле какого-то типа, то его можно вполне использовать как ассоциативный массив. Для этого тип ключа просто переведем в строку, и значение ячейки запишем в leaf соответствующего поля. Может ли из этого выйти ассоциативный массив? Если да, то это может быть вполне себе новая структура данных.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +11
  • Проголосовать: не нравится