Мегаотчёт — день 2 из 2
nponeccop — 05.09.2022На второй день у меня с утра не было настроения — сходил в супермаркет, потом отвёз сломавшийся модем в ремонт, где-то к обеду вернулся и решил засесть.
Первым делом я решил уменьшить размер тех задач, которые не вписывались в квоту. Для чего пообрезал младшие биты у цветов.
Некоторые задачи таким способом не решались. Я уже отчаялся и 1 бит оставил.
Первым открытием дня стало (Семён Семёныч!), что места упорядочены по количеству задач, то есть первым делом надо войти в клуб людей, у которых хоть как-то решено максимальное количество задач. И для этого я изобрёл мега-решение, названное мной empty.txt:
color [0] [128,128,128,255]
Я его засабмиттил руками в те задачи, в которых у меня была превышена квота. Это позволило решить уже довольно много задач (все первые 25 точно). Но самым важным открытием стало, что счёт уменьшился значительно (второе открытие)! В результате я позаменял всё, поубирав точно воспроизведённые картинки и вставив просто серые квадратики.
Дальше я занялся инкрементальным улучшением серых квадратиков. Первым делом заменив их на средние значения. А чё?
Счёт пополз вверх!
В-общем вы поняли. Среднее вверху и внизу отдельно. Я остановился на 4 полосках. Потом переключился на недостающие задачи, где empty не срабатывал. Там оказалось несколько проблем:
— Задачи 31-40 можно было решать традиционно, но я их сразу не решил, так как была идея что задачи только усложняются по мере номера. А по факту там везде 0-й блок стандартный в жсоне на всю картинку. Ещё одна шутка юмора.
— Задачи 25-30 содержали готовые блоки, и я сначала тупо покрасил там один из блоков в серый цвет, а потом улучшил, объединив все блоки в один и сведя задачу к предыдущей.
В-общем ко второй половине дня я вошёл в число людей, у которых решены все задачи. И дальше вернулся и стал инкрементально улучшать существующие. Вот лучший счёт которого удалось достичь на афганской девочке:
В какой-то степени я пал жертвой первоначальной картинки с шахматами. Все дальнейшие решения, не считая объединялки блоков, были сделаны в духе и на основе инструментария для ручного решения задачи с шахматами.
Был ещё вариант относительно безболезненно пробовать рандомные сетки (код поддерживал произвольные неравномерные по обоим осям сети), но это требовало рассчёта весов, которого у меня не было (да!). Ещё я обнаружил случайно, что на картинке с роботом белое заполнение даёт лучший счёт, чем серое или среднее. Я стал его писать, но уже 4 часа утра (4 часа до конца) и я решил на всё плюнуть и пойти спать. Тем более что мои инкрементальные улучшения компенсировались инкрементальными улучшениями конкурентов, и в турнирной таблице я не продвигался.
|
</> |