Pull to refresh
64
0
Иван @Aivean

User

Send message
Злоупотребление «подобными методами» я не поощряю, разумное использование — да.
Вы всё равно смешиваете понятия. На олимпиаде существуют правила, часто гораздо более жёсткие, нежели в реальных высокоуровневых проектах. Наиболее важные — ограничения по памяти, времени работы и времени разработки. Задача участника не только понять, как правильно решать задачу, его задача — найти золотую середину, которая будет удовлетворять ограничениям и наберёт наибольшее количество баллов. Вы делаете упор на правильность решения. Правила ACM не допускает даже малейшей неточности в решении. Но школьные олимпиады — другое дело. Тут у участника больше свободы в выборе. И если он заранее неправильно решает задачу, но при этом получает наибольший выигрыш в целом, то он поступает полностью правильно. К тому же, вы, наверное, и сами можете придумать кучу реальных ситуаций, в которых идеальная точность решения не стоит времени и ресурсов, затраченных на его разработку. Хотя решать это, конечно, должны не рядовые кодеры, а руководители проекта.
Судя по вашей дате рождения, вы довольно давно участвовали. Поверьте, сейчас у нас много чего изменилось, меньше давления со стороны руководства на жюри позволяет более правильно подходить к составлению и проверке задач.
Я не согласен с тем, что группировка тестов сильнее усложняет задачу решающих, нежели изменение условия задачи. Конечно, всё зависит от задачи, но, чаще всего, мультитест используется именно для таких задач, в которых изменение условия, которое позволит избежать эвристик, кардинально изменяет и решение задачи, делая его на порядок сложнее для решающих. Например, для вашего примера «существует ли» может решаться каким-нибудь поиском, а уже «сколько таких» потребует перебора.
Лучше не хеш считать, а эвристически выбирать наиболее вероятное значение. К примеру, длинный тест — вероятнее 2, короткий — 0, хотя ещё лучше написать более «умную» эвристику.
ACM всё же сильно отличается от подхода к школьникам. Тут как раз нужно не усложнять задачу, а не допустить возможность набирания тривиальными решениями большого количества баллов.
Фактически, в нашем случае, «мультитест» и достигается изменением условия задачи — добавляется во входных данных количество тестов, затем подряд следуют исходные данные каждого теста.
Полностью отказаться от этого нельзя, ведь бывают действительно хорошие задачи, решением которых, тем не менее, является конечное небольшое множество заранее известных ответов.
Не расстраивайтесь, например у нас (Донецкая область) подобные решения могут от силы 10% набрать, тесты проверяются в группах.
Для тех людей, которые «в теме» «хитрость» автора не является хитростью как таковой, это — один из известных приёмов, которым каждый когда-то пользовался. Тем более, те организаторы, которые заинтересованы не допускать подобные решения с помощью группировки тестов не допускают их.
Так что, получается, результатом поста автора явилась только полемика об олимпиадах, что, в принципе, неплохо для тех, кому есть что сказать.
В своё время на Всеукраинке так одну задачу решил. Написал за пять минут перебор, который потом ещё час генерил ответы на тесты. А многие на этой задаче засыпались по таймлимиту.
Когда это было, и, главное, где?
Человек правильно написал. На олимпиадах задачи проверяются автоматически, по тестам, в код никто не смотрит. На сборах же цель — не только отобрать лучших, которые пойдут отстаивать честь области/страны, но и улучшить их знания, поэтому задачи подробно разбираются и код тоже анализируется.
Интересно, почему зря? Использование подобных эвристик — довольно известный приём, причём, на сборах на Всеукраинку нас учили, что если не успеваешь написать полностью программу, пиши эвристику, авось наберёт сколько-то баллов.
Я отвечу вам. Дело в том, что олимпиады по программированию на самом деле далеки по сути от реального практического программирования. Рассматривайте олимпиаду как одну практическую задачу в которой ваша цель — набрать как можно больше баллов с помощью любых доступных средств в рамках правил. Олимпиады как раз и призваны развивать нестандартных подход и абстрактное мышление у людей.
Я член жюри города Донецка (один из областных центров Украины). Так вот, уже несколько лет в подобных задачах используется группировка нескольких ответов в один. Тест считается пройденным, если вся группа ответов идентична эталонной. На простых группах тестов эвристики теоретически могут пройти, но человек, так решивший задачу не наберёт больше 10-20% баллов.
Точка имеет 0 измерений. Одно измерение имеет прямая, отрезок, луч.
Тоже заметил. Точка лежит в нуль-мерном пространстве.
Поэтому в качестве первого аксессуара к экзоскелету предлагаю производить самонаводящиеся лазеры!
А ещё человек после практики способен «сродниться» с любым механизмом (взять, например, автомобиль). Так что десять ручек оторвёте, а в одиннадцатый раз нормально дверь откроете.
Вы меня опередили) Точно такая же мысль возникла)

Information

Rating
Does not participate
Registered
Activity