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

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

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

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

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

Как решать D на 100?

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

    Епсилон — вроде такая малость, а иногда 90 баллов стоит. Скачал тесты, поправил, протестил и заработало такое вот:

    Обрабатываем эти треугольники в том порядке, в котором даны. Для текущего треугольника смотрим — задействовались ли его стороны в более ранних треугольниках (это можно делать, например, map-ом) — если да, то строим по нашему текущему описанную окружность и проверяем расстояние до третей вершины каждого такого раннего треугольника. Из условия каждая сторона может быть задействована лишь в двух треугольниках.

    Строгого доказательства не дам.

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

      Я так понимаю, получается все тот же квадрат, но с меньшей константой.

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

        Получается не квадрат, потому что для каждого треугольника проверять придётся максимум 3 точки, по одной для каждой стороны

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

          Хотя все таки нет. Если я правильно понял, то если точка из "раннего" треугольника окажется вне окружности, а точка из не "раннего" окажется внутри, то все плохо.

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

            Если точка из не "раннего" треугольника внутри, значит пересекаются две окружности. Даже если мы пропустим пару "А пересекает Б", то мы обязательно обработаем "Б пересекает А".

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

      А как это учитывает одиночные точки?

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

        Эмм, простите? Я не очень понял

        Если речь о том, что будет где-то стоять точка, к которой ни одного ребра не проведено, то таких не будет, так как формально у нас дана триангуляция выпуклого многоугольника, только тогда суммарная площадь ловушек максимальна (как говорится в конце второго абзаца)

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

          Понял, спасибо. А какой у тебя eps был?

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

            Пожалуйста

            Вообще 1e-9, это заходит. Проблема была не в размере eps, а в его отсутствии в паре мест

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

    http://www.ict.edu.ru/ft/004503/09.pdf

    Страница 10, теорема 1 и Страница 20 дают решение в целых числах на 100 баллов.

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

      В целых числах принадлежность точки окружности через заданные три проверять углами немного лень, т.к. можно написать double + long проверку на 30 десятичных разрядов. Пишем окружность через три точки, смотрим знак в даблах, если по модулю меньше 10^18 считаем в long long.

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

Большая просьба к жюри : отвечайте, пожалуйста, на вопросы участников. Я отправил вопрос на [email protected] через полчаса после начала олимпиады по поводу регистра букв в задаче B. Ответ не пришел, но где-то на втором часу олимпиады изменили pdf-файл с условиями, где говорилось, что буквы строчные, однако клара об этом не было.

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

    Мне ответили.

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

    Да, нашел ваше письмо во входящих, на него действительно нет ответа. Приношу свои извинения.

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

      Блин, я как сейчас помню что писал про строчные буквы в условии :(

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

        Ну в двух твоих ревизиях условия в формате входных данных этого нет. Я вот помню, что когда первый раз вычитывал — обратил на это внимание, проверил валидатор, а потом забыл дописать >_<

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

Добавят ли данный контест в тренировки КФ?

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

Подскажите, кто-нибудь! На сайте олимпиады выложены тесты, авторские решения. А как можно выложенными чекерами протестировать задачи.И вообще можно ли это сделать. Спасибо.

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

    Вы можете отправить свое решение в тренировку на CodeForces и посмотреть вердикт.

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

      Согласен с Вами. Но, на CF тестируется до первого не пройденного теста. И все-таки можно ли используя чекеры архива олимпиады протестировать задачу?.