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

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

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

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

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

На каком тесте могла 4-я выдавать ВА? Я по очереди проверял для каждой фигуры и если для какой-нибудь подошло, выводил ее название, проверял в таком порядке: квадрат(все стороны равны и косинус всех углов 0), прямоугольник(противоположны стороны равны и косинус всех углов 0), ромб(все стороны равны, косинус противоположных углов одинаковый и сумма косинусов соседних углов равняется -1), параллелограмм(противоположные стороны равны, косинус противоположных углов одинаковый и сумма косинусов соседних углов равняется -1), четырехугольник(все четыре точки разные). Если ничего не подошло выводил "NONE".

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

    ромб(все стороны равны, косинус противоположных углов одинаковый и сумма косинусов соседних углов равняется -1

    ШТО? Может косинус суммы углов?

    P.S. А проходятся ли тесты вроде

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

      Ой, бред написал, только сейчас дошло. Но и без этой проверки я отправлял. Без нее оно по идеи должно работать, по крайней мере я не смог придумать тест который бы ломал мое решение.

      Да. Вот мое решение.

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

        Так это же бред: точки должны следовать именно в порядке ABCD, ответ на мой тест — NONE

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

          Я перебрал все перестановки на всякий случай, вдруг там не всегда точки в порядке "против часовой стрелки".

          upd Хотя достаточно проверить (1, 2, 3, 4) и (4, 3, 2, 1).

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

            It is safe to assume that the four points entered are in the order of A, B, C, D and you have to determine which quadrilateral (or none) is formed by ABCD.

            По моему порядок жестко задан. Так что надо только две перестановки проверять. Хотя кажется и одной хватит.

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

Just backtrack all possible permutations recursively (remembering rooms for each person at the same time). At the end, check all the rules. Print the first good result.

How to solve PC04? I think, that the hardest part was to match if the given figure is QUADRILATERAL or NONE. How to do that easily?

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

    you should check 3 things:

    1. Any 3 points is on 1 line

    2. Any two points coincides

    3. Any two not adjacent side of QUADRILATERAL intersects (I don't mean their continuation) , AB intersects CD or BC intersects AD

    If any from this 3 happens its not QUADRILATERAL else it is

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

В первой просто перебираем перестановку наших кабинетов и проверяем каждый вид данной нам информации...если перестановка подходит под всю информацию, то выводим ее.