Задача за изпит - Bittris
Здравейте!
От няколко часа си блъскам главата здраво на една задача, която е давана на изпит миналата година на пролетния прием в Телерик. Можете да е намерите тук - Bittris. Решил съм по-голяма част от всички задачи давани на изпит но тази просто кара някои от другите да бледнеят пред нея. Порових се из форума на Телерик и намерих доста решения но всички наблягат на битовите операции. Понеже не съм особено голям техен фен повечето подобни задачи си ги решавам с масиви и страшно ме улесняват по този начин. Искам да попитам има ли някой, които вече да е решавал тази задача и да работи напълно вярно в BGCoder но без да е използвал побитови операции? Ще се радвам на малко насоки и ако е възможно share на source code-а ;) Като си поблъскам още малко и аз главата и е подкарам до някъде ще пусна и линк към моя код.
Edit 1: Успях да го докарам до 66/100 (6 от 9 теста) за сега. До сега се водех по логиката, че "фигурките" са непременно няколко бита един след друг като реални фигурки на Тетрис. Явно не е съвсем така но ще го оставя за утре, че в 3 часа как се пише код вече :D
Edit 2: Повече от 66/100 изглежа не мога на този момент да искарам чрез двумерни масиви. Направих е наново само, че побитово този път и се оказа че е доста по приятно и леко за писане конкретно за тази задача. Спрях се на побитовия метод понеже си работи безупречно и не се сблъсках с толкова много бъгове като матричния метод.
Поука: Някои задачи се решават много по лесно чрез матрици отколкото с побитови операции но си заслужава да се помисли малко и върху логиката за решаване чрез другия метод. Ето го и кода за крайното ми решение.
Не знам , защо избягват всички побитовите операции, като са толкова лесни и кода става много къс - май е от страх ми се струва - напълно необоснован .
Знам , какво е аррей знам ,че са матрици на английски , то и листа е едномерна матрица и стринга - завършила съм математическа гимназия и съм взела 7 висши математики - просто съм сбъркала при писането - с матрици се работи по-трудно и е объркващо и лесно може да се сгреши ако не внимаваш, пък и още не сме учили операциите с тях - само ги споменахме - аз прегледах за тях има много неща още да учим .
По скоро умножение и деление по степени на 2 използвайте, като ви е страх от битовете.
Но Наков каза, че трябва да ги научим побитовете операции, че били много важни - та ги научете , пък после матриците.
Задачите могат да се решават по различен начин. Това, че някой предпочита да ги решава конкретно тези с нещо различно от побитови операции по никакъв начин не значи, че са му трудни или страшни. Напротив даже може да са му много лесни и насън да го бутнеш да ти върти битовете, но може да му е много по удобно да борави с многомерни масиви.
Реално като погледен едно "игрално" поле 8x8 е просто интуитивно да се насочваш към матрица. Най-малкото можеш да си представиш на момента визуално как би изглеждало полето и кой "бит" къде отива по него и т.н. Не напразно хората са казали, че тези задачи (игралните с битове) за изпит се решават по-лесно с масиви. Като има по-лесен начин е нормално да се насочи човек към него.
Аз търсех решение с масиви и си намерих такова. Нека не водим излишни спорове.