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

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

Думаю, у многих возникает вопрос во время SRM: "Челленжить или не челленжить?" Из 16 челленжей у меня только 2 успешных. И я уже привык к "unsuccessful". Хотело бы узнать, как у вас обстоят дела с этой фазой соревнований и какие есть наработки.

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

»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Если есть 100% уверенность, что код жертвы будет работать неправильно — вперед!
В противном случае, следует оценить свое место в таблице до и после неудачной попытки. Если морально готов скатиться по таблице — вперед! :)
На TCO 2013 2A я набрал -25 очков, занял 1000+ место и получил 1429 -> 1214 рейтинг.
С нулем очков можно было бы спокойно остаться на 438 месте с почти нулевой дельтой.
С тех пор к взлому подхожу более ответственно.

»
11 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

Не надо пытаться взламывать циклы 1..10^9. Пример: последний SRM div.2 задача на 500 баллов, проходило решение одним циклом, в history было ~ 15 попыток взлома, видимо все пытались взять на TLE.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится

    А я в div1 950 в прошлом матче не дописал %M в динамике, в результате там было что-то порядка 10^10 элементарных операций — и никто даже не попытался это поломать)

    Хотя асимптотика решения понятна сразу, там обычное for for for...

    Ну и да, на что еще можно обращать внимание, это на историю. Банально если кто-то пытается взломать решение — вероятно, там есть что-то, что вызывает подозрения. Если это решение с вот таким одним циклом 1..10^9, и его уже 5 человек попытались взломать безуспешно — перед своей попыткой придумайте что-то более оригинальное, чем "оно упадет по ТЛ".

    Еще иногда бывают подарки судьбы, когда есть два решения, о которых можно с уверенностью сказать, что на таком-то примере входных данных они дадут различные ответы. Тогда можно почти гарантированно набрать как минимум +25, даже не разбираясь в деталях.

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Я понял что для тех кто норм сдал 250 и средне 500 это возможность подняться на 50-100 мест или упасть на столько же (среди похожих). А наработки это раз уж я долго все делаю (тормоз) — не смотреть очень простые 250, смотреть сразу 500, и если код короткий+подозрительный перепечатать его и посмотреть что будет. Но если получится скомпилить в голове то оч хорошо будет.

PS 250 это иногда на самом деле 500. И если 500 как 250 в ней все равно фейлят потому что там обязательно крайний случай гадкий.

»
11 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Возможно, стоит смотреть на время сабмита. Например, если человек сдал 1000 слишком быстро или 250 слишком медленно. Так-же не соглашусь с утверждением, что ломать TL-ные решения не стоит. Например, на последнем контесте 2 человека из моей комнаты пытались сдать Cdiv2 какими-то странными усеченными переборами вместо динамики, на чем и были подловлены :).