[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Олимпиадное программирование ->Методика подготовки к IOI 2007 - ... 1, 2, 3, 4, 5, 6, 7
Автор Сообщение
Александр Лосев

Темы: 30
Сообщений: 143

Мой профиль
Неужели... Это случилось...

И так. Давно не отписывался . Сегодня дорешивал командную, которая была в среду, и писал Codeforces Round #676.

Начну с раунда:

1) Прочитал А, почему-то сразу пришло в голову, что ответ будет равен (a ^ b), но я не собирался доказывать.
2) В пришла в голову сразу, но долго тупил, как реализовать. Сначала писал ифы, запутался, и придумал реализацию полегче.
3) в С немного проанализировал на тетрадке и сдал
4) Прочитал D. Надо было просто изменить стоимость ходов на другие, соблюдая данные правила. Похожего принципа я уже видел задачи на контестах, в этот раз не лоханулся и приём запомнил
5) На последний час осталась задача Е. Пытался как-то жадно получить ответ, меняя знаки чисел по каким-то правилам, словил ВА8. До конца контеста больше никаких идей не было

В итоге я апнул фиолетового.

Дорешка:

1) Дорешал G своей идеей, которую придумал ещё на контесте.
2) В D-шке надо было додуматься до разделения отрезка запроса на два других, где границы уже фиксированны, а дальше, чтобы ответить на запрос, надо было использовать ДО
Андрей Костяной

Темы: 121
Сообщений: 274

Мой профиль
08.10.2020-18.10.2020

Начну с дорешки:
1)http://www.usaco.org/index.php?page=viewproblem2&cpid=1045, задача с одной из командных тренировок USACO, интересное ДП.
2)https://www.codechef.com/problems/XORTABLE, задача с командной тренировки snack down 2019. Тут прям простор для решений: 1) Битовый бор; 2) сокращенный перебор, который амортизированно быстро работает;
3) D задача с командной тренировки в среду 14.10.2020. Задача на силу рук, была идея про половину подстроки-запроса, но я думал об этом только для одной стороны, а нужно было применить для двух.

Написал codeforces global 11. Во время контеста сдал 4 задачи и написал 5-ую, но не успел подобрать правильную стратегию до конца контеста в 1-ой части решения (я пытался написать что-то умное, а в дорешку отправил решение, которе случайно выбирает, что делать -- и оно зашло, грустно )

Закончился long challenge. Всего я сдал 7/9 задач на полный балл и еще одну на 20/100. Занял итоговое 44 место, это такое, но с каждым лонгом получше получается решать, вроде. Уже дорешал одну из несданных задач https://www.codechef.com/OCT20A/problems/RANDKNAP. Это интересная задача с необычным meet-in-the-middle + св-ва рандома.

Также написал 2 контеста INOI (day 2, day 3).

day 2: Было 3 задачи:
A) сразу показалась самой простой;
B) какой-то интересный жадос;
C) какой-то хардбас на ДП на дереве;

Решил сначала разобраться со сложными задачами, а потом взяться за A. На С придумал как свести к другой задаче и спустя какое-то время получил 22 балла. Переключился на B. 7 баллов набрать было просто и я их написал, чтобы проверить понимание условия. После этого решил сдать подгруппу k = 1, так как она была похожа на базу задачи. Справился с этим (и получил в сумме 38 баллов по B) я за +- 1.5 часа до конца. После этого я уже точно решил, что пора набирать баллы по А и пошел ее решать. Пытался сдавать какие-то жадники, но до конца контеста так и не получил баллов.

Что хочется сказать про day 2:
1) В A ограничение на m было 20, то есть это конкретный намек на маски, а про них даже не думал и просто пихал жадники (по итогу решение оказалось несложной ДП по маскам, мне его рассказал Arayi);
2) После окончания контеста, так как разбора не было, то я решил попробовать сдать подгруппу k = 2 на B, так как у меня появилась идея. С этим я успешно справился и вдруг, я осознал, как это апгрейднуть на фулл (k = 10). И я дорешал эту задачу.

Какие выводы:
1) ограничение m = 20 это прям баян про маски, такое должен придумывать (хотя бы идею о масках);
2) если уж не получалась A, то нужно было переключиться на B, где хоть какие-то идеи были.

day 3: Было 3 задачи:
A) похоже на жадос, ДП;
B) Какой-то хардбас, но на 20 изи;
C) Задача на силу рук;

И так, представления какие-то о задачах были. Сначала решил написать брут на C, чтобы убедиться, что идея правильная. Так и оказалось. Но писать было реально много, поэтому я решил сначала получить простые 20 баллов по B. Как только получил, то сразу пошел писать C, так как там было реально много писать (это было +- 1.5 часа от начала контеста). Сдал C на 100 я на +- 3.40 с +- 380 строками кода (причем написал рабочую версию я еще на +- 3 часу, но там были оч узкие ограничения по времени, поэтому пришлось оптимизировать код). Дальше нужно было набирать баллы по А. 50 баллов выглядели несложно и я стал печатать. За минут 10 до конца я получил 50 балло по А суммарно.

После контеста написал одному парню на CF, чтобы узнать решение по А. Там оказался жадос + двоичные подъемы. Думаю, что придумал бы, если бы было больше времени. Тут была тонка грань, думать А на 100 или получить уверенные 50, но я думаю, что на 100 не сдал бы, да и 50 -- это не так уж мало, поэтому выбором доволен.

Написал codeforces Raif round 1. На контесте очень сильно медлил и получил много штрафа. A-C сдал быстро и без проблем, но потом решил написать жадос на Е, который стал первыми минусом. Дальше решил прочитать D, но она мне показалась сложнее Е, поэтому я вернулся на Е. Придумыал еще несколько жадников, пока на 1.17 не сдал окончательно правильную версию с +4. Дальше была D, на которую у меня уже была идея, но я решил прочитать F. Она оказалась задачей +- стандартной, поэтому я понял, что мне нужно оч быстро сдавать D, чтобы успеть еще и F. D я сдал с +2 (забыл добавить элементы в вектор) только на +- 2 часу и у меня оставалось 30 минут на F. К счастью, я успел за 4 минуты до конца сдать F c +1 (неверные ограничения стояли). Контест по штрафу и скорости моей сооброжалки просто ужасный, но я успел сдать 6 задач, поэтому дали +42, что не так уж плохо, но я знаю, что это точно не мой предел. Также дорешал G задачу с этого раунда (св-во, что только одно из чисел должно состоять не из 0,3,6,9, потом стандартная штука про рюкзак с кучей одинаковых предметов (смысл в том, что если есть n одинаковых предметов для рюкзака, то мы можем их представить как log n предметов через двоичную систему), ну и последний шаг придумать, что можно отдельно для каждого разряда считать, короче отличная задача на соображалку + ДП).

Написали сегодня командную тренировку. Сдали 9 задач из 10, но очень медленно и с большим штрафом. Обсудили и проанализировали, в чем были проблемы, так что в следующий раз должны выступить лучше. Последнюю задачу обсудил с парнем из ЛБГУ, нужно было придумать, что можно от двух измерений перейти к одному, дальше несложно, вроде. Думаю, что не сдали именно из-за того, что долго писали все остальное. Как только появится где -- сразу дорешаю.

Также написал сегодня cook off. Возможно был уствший после командной, но сдал только 2 из 6 задач, еще и с 2 лишними отсылками. На 3-ю все, что нужно было я придумал, но все вместе собрать не смог. Итог -46 рейта, учитывая, что я и так не оч высоко сейчас. 3-ю задачу уже дорешал.
Андрей Костяной

Темы: 121
Сообщений: 274

Мой профиль
19.10.2020 - 01.11.2020

Наконец-то закончилась первая четверть. Теперь смогу ботать сколько влезет.

И так, начнем с дорешки:
1) задача с ЗКШ G1, интересная задача на ДП + фенвик + хитрый компоратор для сортировки;
2) задача с ЗКШ J3, интересная задача про разделяй-и-властвуй на дереве (не центроидка);
3) F задача с первой интернет-олимпиады командной, как и говорил, нужно было свести к одномерной задаче, дальше просто все;
4) https://codeforces.com/contest/1408/problem/G, нужно было свести к дереву, а дальше по нему стандартное ДП;
5) https://codeforces.com/contest/1436/problem/E, нужно было написать +- стандартное ДО;
6) https://www.codechef.com/COOK123A/problems/INVERACT, большую часть придумал на контесте, только нужно было дойти, что нужно добавить меморизацию;

На командной тренировке 21.10 сдали 8/9. Анализ контеста есть в соответствующей теме.

На командной тренировке 25.10 сдали 6/10. Анализ контеста есть в соответствующей теме. Дорешал 2 задачи:
1) Н. Написали еще на контесте, просто добавил второй хеш;
2) J. Задача на FFT. Так как FFT я знаю, то думаю, что не сдали из-за того, что зависли на долго с H;

На командной тренировке 21.10 сдали 9.10. Анализ контеста есть в соответствующей теме. F с этого контеста уже дорешал.

Отбор на IATI 31.10. Сдал на полный балл 12/14, K сдал на 65/100, N -- 19/100. Отрешал на 2-ое место. Отобрался в основную сборную.

По поводу того, что я не первый -- я конкретно обделался. Не сдал задачу К, потому что углубился в идею рекурсии, а там было простое ДП (в эту сторону думал, но все-таки перешел на рекурсию). Задачу N уже дорешал. Думаю, что ее можно было бы сдать, если было бы только 3-4 задачи, а из-за того, что нужно было сдать 10 изиков, то времени не хватило.

Также в этот же день через час после окончания отбора пошел решать october lunchtime. Наверное был уставшим, сдал 3 задачи на полный балл, D на 25/100 и Е на 30/100. Е была довольно сложной, поэтому баллу по ней я доволен. А вот с Д я конкретно обделался. На 80/100 было вообще не сложно, а на 100 уже нужно было свести к квадратному уравнению и заметить, что брут на самом деле довольно быстрый. Но основное -- свести к решению на 80, я не смог (если свел бы, то, думаю, сдал бы на 100). С чем это связано -- не знаю. Нужно было пересечь все интервалы из 1-суммы, 2-суммы и т.д., а я пытался найти закономерность.

01.11 Написал CF 680 Div 1 раунд. Сдал быстро А (на 6-ой минуте), но с +1, также быстро сдал B (на 15-ой минуте). Потому быстро придумал и сдал С с + на 47-ой минуте. Потом пытался придумать Д, но +- на 1.15 я понял, что в С у меня есть баг и решение у меня неправильное. Тут у меня была дилемма:
- перезаслать решение и получить гарантированные баллы по С, но их будет много меньше, чем есть сейчас
- оставить все как есть

Я решил не перезасылать, так как по предиктору мне светил гроссмейстер, а если бы я перезаслал, то гросса я бы 100% не получил.

По итогу на систестах С у меня упала, но все равно +44 (так как быстро сдал А,В) и я вернул международного мастера.

Д с этого контеста уже дорешал (на контесте дошел, что должно быть h=v и что мы должны уметь разбить последовательность на 2 с одинаковой суммой (это стандартное ДП с битсетами), что дальше делать на контесте я не придумал, а там нужно было построить две выпуклых ломаных (это легко сделать если отсортировать ребра по полярному углу) и нужно было заметить, что 3-я ломаная, которая их соединяет, может быть произвольной).
Андрей Костяной

Темы: 121
Сообщений: 274

Мой профиль
02.11.2020 - 09.11.2020

Буду сразу писать про контесты и про дорешку с них.

CF round 681 Div 1
Без особых проблем сдал A,B, потом написал на +- час 15 решение на С, но оно упало по WA. Сделал еще несколько отсылок с assert-ами, чтобы понять, где проблема и на +- час 45 сдал С с +4. По итогу +25 за раунд.

D и Е задачу с этого раунда уже дорешал. На D еще на контесте успел придумать идею с заменой одного элемента на другой. Дальше можно было это продвинуть до рюкзака с откатами. Е задача конструктив, который сводится к нахождению диаметра дерева.

04.11.2020 написали командную тренировку (подробности в соответствующем разделе)

05.11.2020 написал виртуалку APIO 2020

Как всегда, с самого начала я прочитал все задачи. Вот первое впечатление:
A - какой-то на первый взгляд приятное ДП, несколько первых подгрупп очень простые
B - мм графы
С - сразу же в голову пришла идея фиксировать центроид как корень дерева и прыгать по поддеревьям (видел раньше похожий прием в задачах)

Написал быстро подгруппу на 6 баллов в B чтобы проверить правильность понимания условия. Дальше я решил проверить идею с центроидом на С. Написал -- 0 баллов и WA. Решил покопаться и получил этим решением 10 баллов, но не потому, что оно правильное, а из-за слабых тестов. Решил пока откинуть эту идею и для правильности понимания условия написал брут на 26 баллов. Так как пока что идей по С и B не было, то я решил переключиться на А и сдать простые подгруппы. С этим я успешно справился на +- 2 часу и получил 28 баллов по А, но задача мне оч симпатизировала и я стал копать дальше. Через 30 минут я сдал А на 100. Придумал несложное решение на еще одну подгруппу в С, но пока решил еще подумать. И стал я думать над B. Я погрузился в долгие раздумья на целых 1.5 часа и в итоге придумал, по-моему мнению, полное решение, но его было оч сложно реализовать. Так как оставался всего час, то я понимал, что это решение точно не сдам, поэтому решил переключиться на С и сдать еще одну подгруппу. Написал решение на С, отсылаю -- WA. Пытался еще покопаться в этом решении, но за минут 20 до конца я понял, что оно неверное. Сразу же придумал верное решение и за несколько минут до конца сдал еще одну подгруппу в С и получил по ней суммарно 47 баллов.

Итог контеста: 100 6 47 -- бронза

Выступил просто кошмарно. Вот 2 главные причины:
1) задача B. Я думал, что придумал решение, однако прочитав разбор я понял, что одно из моих базовых утверждений было неверным. Я бы увидел это, если бы написал брут на одну из легких подгрупп. Однако после того, как я придумал полное решение, я, в разрез с моей тактикой, не написал брут, проверяющий эту идею, а продолжал думать над "полным" решением, пытаясь его упростить. Если бы я понял, что это утверждение неверное, то решение задачи стало бы для меня намного проще;
2) задача С. Когда я открыл разбор, то увидел свою идею с центроидом, просто нужно было добавить несколько костылей и это было бы полное решение. Почему я не стал развивать эту идею на контесте? Я не знаю. Мне эта задача казалась сложной. Мне казалось, что ее нереально решить. Видимо, нужно приучить себя к тому, что я способен решать такие задачи.

Все задачи уже дорешал.

08.11.2020 написали командную тренировку (подробности в соответствующем разделе)
09.11.2020 написали командную тренировку на CF (подробности в соответствующем разделе)

С командной на CF оставалось нерешенных на контесте 4 задачи: F, I, J, K:
1) F дорешал сразу после окончания контеста, после прочтения разбора.
2) J тоже прочитал разбор, но там было не оч подробно, поэтому пришлось норм так подумать самому тоже. Красивая конструктивная задача;
3) K задача просто на силу рук. На контесте не заметил, что один из параметров варьируется от 2 до 3, а в таком случае нужно просто аккуратно реализовать ДД;
4) I оч красивая задача на комбинаторику и ДП. Нужно знать, что такое код Прюфера. На емаксе оч подробно про него все написано. Ну и если ты знаешь, что это, то решение даже +- очевидное (только нужно быть аккуратным в частных случаях).
Все эти задачи уже дорешал.

Ну и сейчас уже идет long challenge на codechef. Сдал пока 2 задачи на 100 и еще одну на 30 баллов.
Андрей Костяной

Темы: 121
Сообщений: 274

Мой профиль
10.11.2020 - 17.11.2020

Завершился codechef long challenge. Сдал 4 задачи на 100, одну на 30 и еще одну на 20 баллов. Занял итоговое 59 место. Не плохо, но и не хорошо.

В среду (11.11) написали командную тренировку. Подробности в соответствующем разделе.

Также начался длинный отбор на открытую олимпиаду. Пока сдал A на полный балл, С на полный видимый балл (и должно быть полное решение). На B сдал какие-то частичные, но фулл пока не придумал.

Также перед Шуменской решил написать эту олимпиаду 2017 года.

1-ый день
Первые впечатления о задачах:
A - какой-то лютый гроб
B - что-то не оч сложное, ДП
C - возведение матриц можно раскрутить на много баллов, наверное

Сначала мне больше всех понравилась С, поэтому я там подумал над матрицами. Придумал совсем легкие 35 баллов и еще 10 баллов чистое возведение матрицы в степень. Но B казалась проще, поэтому я решил перейти к ней. После некоторых раздумий придумал ДП, которое было похоже на фулл и сразу стал писать. +- через час (на 2.5 часу контеста) получил 100 баллов по B. Дальше решил написать брут на С, который возьмет простые 35 баллов. Справился с этим за 20 минут. И решил не начинать сразу писать матрицы а еще немного подумать. Придумал подгруппу на дополнительные 20 баллов с добавлением петель, но пока решил набрать дополнительные 10 баллов простыми матрицами. Справился с этим я на +- 3.5 часу. Потом еще немного подумал и придумал, как сократить размер матрицы. Это решение уже набрало суммарно 60 баллов (4 час). Дальше я знал, как набрать еще 20 баллов, поэтому начала печатать. И получил 80 баллов я через +- 20 минут. Больше баллов на контесте я не заработал.

Итог -- 0 + 100 + 80 = 180. Я не знаю, почему мое решение набрало 80, потому что по асимптотике подходило под 100 да и в разборе +- тоже самое написано, как и мое решение. Буду разбираться в дорешке.

2-ой день
Первые впечатления о задачах:
A - что-то похожее на D&C;
B - графы, легкие 15 баллов
С - ДП какое-то
Мне сразу понравилась задача С, поэтому я стал над ней думать. Появилось предположение, что p <= n * k и смог свести к ДП за O((nk)^2). Написал для проверки это решение на +- 40-ой минуте и получил 60 баллов. Дальше несложно придумались префиксные суммы, которые улучшили асимптотику до O(n^2 * k) и я на +- 1 часу получил 100 баллов по С. Дальше решил набрать несложные баллы по A и на +- 1.5 часу получил еще 20 баллов. Дальше решил написать совсем простые 15 баллов по B. С этим я справился на +- 2 часу. Дальше решил еще подумать над B. И на +- 2.5 часу получил по ней суммарно 50 баллов. Попытался еще подумать над B, но прогресса особо не была, поэтому переключился на A. Тут был просто для идей с разными жадными алгоритмами (так как была потестовая оценка), поэтому я потихонечку стал набирать баллы и на +- 4 часу получил сумммарно 55 баллов по А. Больше баллов на контесте я не получил.

Итог -- 55 + 100 + 50. Этим днем доволен. Пока не успел дорешать задачи.
Суммарно за два дня 385 баллов. Было бы абсолютное 4-ое место (золотая медаль).

Также написал CF 684 Div 1. Раунд очень не зашел. Сдал А1 только на 29 минуте. Безуспешно пытался еще минут 10 сдать A2. Потом посмотрел по таблице, что Федя Коробейников сдал C. Решил посмотреть, что там. Понял, что задача на +- китайское дерево отрезков и начал печатать. Сдал C с +1 на 1 часу 39 минуте. Безуспешно пытался сдать B (придумал решение для k-подмножества, а для клики не совсем, поэтому писал то, что есть).

Итог: +23.

P.S. На контесте думал написать на A2 поворот матрицы, но не решился реализовать. Отправил в дорешку -- AC. Задачу B уже дорешал.
Михаил Долинский

Темы: 1984
Сообщений: 47242

Мой профиль


Андрей Костяной:

10.11.2020 - 17.11.2020

Также перед Шуменской решил написать эту олимпиаду 2017 года.
Суммарно за два дня 385 баллов. Было бы абсолютное 4-ое место (золотая медаль). 

Круто - продолжай наращивать обороты.
Андрей Костяной

Темы: 121
Сообщений: 274

Мой профиль
18.11.2020 - 24.11.2020

И так, прошла Шуменская.

День 1.
первые впечатления о задачах:
A) похоже на ДП, простая подгруппа на 10;
B) сразу напомнила задачу 1_2 с респы 2018;
C) какая-то комба, есть простая подгруппа на 30;

Меня сразу зацепила задача B, поэтому я сразу написал на нее тупейший брут, который набрал 15 баллов. Дальше я написал решение поумнее и на +- 1 час от начала контеста я получил по этой задаче 46 баллов. Так как особых идей по улучшению решения у меня не было, то я пошел писать брут на С на 30. После того, как я получил эти баллы, я решил подумать над А. Потихонечку стали придумываться подгруппы и +- на 3 час от начала контеста я получил 60 баллов по А. Я знал, как получить еще 20 баллов по А, но пока решил переключиться на С, так как по ней было совсем мало баллов. Пытался что-то придумать, но ничего особо в голову не приходило, поэтому я какими-то костылями улучшил решение до 38 баллов и вернулся к А. Где-то за 40 минут до конца контеста получил +20 баллов по А. Еще немного улучшил решение по B До 48,51. Больше баллов не получил.

Итог: 80 + 48,51 + 38 = 166,51. Среди белорусов это лучший результат за 1-ый день, но среди остальных участников очень не очень. Все было бы не так плохо, если бы я получил 100 по С, которые по итогу оказались не такими уж сложными.


День 2.
Первые впечатления о задачах:
1) какое-то ДП на aliens trick;
2) какой-то изик на ССД;
3) meet-in-the-middle;

Сразу решил написать очень быстрые 31 балл по А, чтобы проверить понимание условие. Дальше пошел решать B. +- через 1.5 часа от начала контеста получил по B 91. Исправил решение на 100 -- WA. Попытался еще поковыряться, но решил, что нужно пока отложить эту задачу, так как по ней уже не мало баллов. Написал решение на С на 36 баллов. Так как пока идей по улучшению не было, то решил оставить эту задачу. И вот, я начала думать над А. Я думал довольно долго и придумал решение с Li Chao tree за O(nk log n). Если бы оно зашло, то я смог бы спокойно исправить на aliens trick и получить по этой задаче 100. Сразу же начал печатать и за 1 час до окончания олимпиады я сдал решение с Li Chao tree на 41 балл. Сразу же стал исправлять на 100, отправил -- WA. Решил поставить дробные числа (иногда это необходимо для aliens trick), отправил -- WA. Поставил дихотомию на 100 итераций -- WA, на 200 итераций -- WA. Так как я не знал, в чем дело, то я решил временно отвлечься на другие задачи. Исправил B на 100, затем сдал С на 44. Оставалось минут 20 до конца олимпиады и я решил пытаться во что бы то ни стало сдать А. Написал какое-то исправление, отправляю -- и тут мне выдает ошибку, что у меня закончились отсылки. Хотя возле кнопки "отправить решение" у меня еще стояло 30 отсылок. Я решил посчитать -- и действительно, отсылки у меня закончились. Я не знаю, как авторы могли такое допустить. Из-за этого последние минут 15 контеста я просто сидел без возможности отправить решение.

Итог: 41 + 100 + 44 = 185. Это просто кошмарный результат. Почти у всех белорусов больше баллов, не говоря об остальных странах. Почти все набирали больше баллов по С + сдавали на A ДП "разделяй-и-властвуй" на 65 (у него такая же асимптотика, как у моего решения на 41, но константа меньше, хотя я все равно не оч понимаю, как решение с такой асимптотикой зашло на n=k=6000, видимо константа очень-очень маленькая).

Самое обидное было, когда я написал россиянам и они сказали, что по А у меня решение правильное. То есть я остался у разбитого корыта с 41 баллом и решением, которое должно было взять 100. Я не знаю с чем это связано. Скорее всего, когда я менял long long на long double я где-то забыл поменять.

По итогу я получил бронзовую медаль (хотя ехал за золотой).

Общая ошибка за два дня -- мало думал, много писал. И задача 1_С и задача 2_С были сдаваемыми, но я не так много думал над ними, а больше пытался написать какие-нибудь проверки и т.п. Все кажется легко -- просто нужно больше думать. Однако может случиться так, что если ты в самом начале неправильно что-то предположил/подумал, то ты можешь несколько часов думать не над той задачей. Поэтому нужно искать золотую середину. У меня есть несколько идей, которые я планирую проверить на ближайшей личной тренировке.

Также в воскресенье прошел отбор на Innopolis open. Я набрал 500/500. 4 задачи были совсем простыми, над 5-ой нужно было подумать/рассмотреть разные случаи.

И еще в воскресенье прошел codechef cook off. Я сдал 5/7 задач и получил +122 рейта. 4 задачи были простыми, а 5-ую задачу я решил благодаря тому, что когда-то на CF решал более простую задачу, в которой выводилась одна из необходимых формул. 6-ую задачу не успел сдать (не хватило времени, хотя она была проще, чем 5-ая), ее уже дорешал. На 7-ую пока не выложили разбор.
Михаил Долинский

Темы: 1984
Сообщений: 47242

Мой профиль


Андрей Костяной:

18.11.2020 - 24.11.2020

И так, прошла Шуменская.

Скорее всего, когда я менял long long на long double я где-то забыл поменять.  
Надо обязательно разобраться в чём конкретно была проблема и придумать как искать такие ошибки.
? может брут, генерация и автосравнение ответов двух решений
? Может спокойное перечитывание текста
? может тип в ОДНОМ месте объявлять и только там исправлять


Общая ошибка за два дня -- мало думал, много писал.
Однако может случиться так, что если ты в самом начале неправильно что-то предположил/подумал, то ты можешь несколько часов думать не над той задачей. Поэтому нужно искать золотую середину. У меня есть несколько идей, которые я планирую проверить на ближайшей личной тренировке. 
Мне кажется, очень правильно ОЗВУЧИТЬ здесь эти идеи.
Михаил Долинский

Темы: 1984
Сообщений: 47242

Мой профиль
Ещё лучше ЗАФИКСИРОВАТЬ здесь текущую тактику.

Например (в часах, в сумме 5 должно быть)
0.5 - чтение условий, уточнение всех нюансов, придумывание брутов на все задачи
1   - написание брутов на все задачи, получение минимальных баллов, уточнение условий (возможно)
      "на подкорке" обдумывание новых идей по задаче, брут которой пишешь
0.5 - выбор простейшей, обдумывание её
1   - реализация
0.5 - выбор простейшей из оставшихся, обдумывание    
1   - реализация
0.5 - РЕЗЕРВ

И выставлять новые версии по мере их возникновения.
Андрей Костяной

Темы: 121
Сообщений: 274

Мой профиль
25.11.2020 - 29.11.2020
В основном готовился к городу по физике, поэтому не оч много занимался.

25.11 написали командную тренировку ВКОШП 2019. Подробности в соответствующем разделе.

Дорешал https://www.codechef.com/problems/XORCOUNT. Самая сложная задача с последнего cook off. Интересная задача на комбинаторику и ДП.

28.11 написали питерскую командную тренировку #4. Подробности в соответствующем разделе.

29.11 Написал 2-ой отборочный раунд на технокубок. Быстро сдал 5/6 задач. По итогу занял 3-е место и поднял гроссмейстера.
Михаил Долинский

Темы: 1984
Сообщений: 47242

Мой профиль


Андрей Костяной:

25.11.2020 - 29.11.2020
29.11 Написал 2-ой отборочный раунд на технокубок. Быстро сдал 5/6 задач. По итогу занял 3-е место и поднял гроссмейстера

Рейтинг: 2453 (макс. гроссмейстер, 2453)

Молодец, Андрей.

Остальным надо подтягиваться
Михаил Долинский

Темы: 1984
Сообщений: 47242

Мой профиль
Фирма OpenMyGame предложила награждение в новой номинации
Программирование-профи

Награждаться будут трое учеников, которые набрали больше всех баллов
во время олимпиад (воскресных и на сборах) по подготовке к областной и республиканской олимпиадам.

Все эти задачи будут находится в курсе
"Программирование - профессионалы (лич. 2020-2021"
в папке "Зимний Кубок 2020/2021", включающей подпапки
К Области-2
К республике

После 14 декабря (когда откроется курс личных олимпиад)
текущее положение будет доступно по ссылке
Программирование - профессионалы (лич. 2020-2021): Зимний Кубок – 2020/2021
Андрей Костяной

Темы: 121
Сообщений: 274

Мой профиль
30.11.2020 - 16.11.2020

Буду рассказывать все в хронологическом порядке.

02.12 написали командную тренировку 2020-2021 ACM-ICPC Brazil Subregional Programming Contest. Решили 10/15 задач. +- неплохо. Дорешал еще 3 задачи C,D,K.
C -- задача на хеши. Не сдали на контесте, потому что не хватило времение
D -- задача на возведение в степень. На контесте не правильно понял условие, из-за чего задача казалась сложнее
K -- оч красивая задача, которая сводится к решению системы уравнений Гауссом

06.12 прошел codeforces global round 12. Написал его просто кошмарно. Сдал только A, B, C1, D еще и с плохим временем. Дорешал пока только C2, еще планирую дорешать E,F (может быть H1).

09.12 написали командную тренировку. Сдали 7/10 задач, так себе результат. На контесте зациклились на C, из-за этого I придумали слишком поздно и не успели реализовать. Дорешал I,G:
I -- задача на ДП с использованием св-в мат ожидания
G -- задача на силу рук (знание формулы для подсчета кол-ва различных подстрок в множестве строк, это стандартная штука написана ан емаксе в разделе про суффиксный массив)

Дорешал 2 задачи с шуменской 2017-ого года:
а) https://csacademy.com/contest/virtual30154/task/clubs/ красивая конструктивная задача. На контесте много чего правильного придумал, но не добил идею, что существует ответ с оптимальной оценкой;
2) https://csacademy.com/contest/virtual30154/task/colorgraph/ красивая задача на графы. На контесте свел в минимальному разрезу, но не знал, как быстро его реализовать. Из разбора узнал, как это сделать с помощью потоков;

10.12 прошел развлекательный контест олимпиады Иннополис. Задачи были своеобразными. Самой интересной была А, в которой нужно было по изображению понять, это круг, квадрат или равносторонний треугольник (причем они могут быть повернуты). Я справился только с нахождением круга

12.12 прошел ВКОШП 2020. Мы облажались просто конкретно. Сдали только 6/12 задач. За час до конца контеста у нас было в работе 3 задачи и был выбор:
а) объединяться и решить 1 задачу гарантированно, но тогда точно не попадем в медали
б) решать по отдельности, тогда был бы хотя бы какой-то шанс на медали

Мы решили рискнуть и остались ни с чем. Все задачи ВКОШП я уже дорешал:
1) E придумали на контесте, но не смогли сдать. Нужно было свести к графу со степенями 1-2;
2) G гроб контеста. Нужно было догадаться, что всегда выгодно разделять на +- равные части, а дальше написать min-cost-max-flow;
3) H придумали на контесте, но не смогли сдать. Задача на ДП по числу;
4) I своеборазная задача. Нужно было догадаться, что игра не зависит от ходов игроков;
5) K сложная задача с контеста. Нужно было придумать правильный алгос, а дальше уже легко его реализовать с СНМ и сетом по моментам времени;
6) L Виталик написал код на контесте, но не смог исправить все баги. Я дорешал авторское решение. Нужно было свести задачу к сортировке и двум указателям.

Также прошли 2 дня сборов. 2-ой день закрыл. 1-ый не закрыл потому что ошибся в Дейкстре.

Также сейчас идет длинный тур московской открытой олимпиады. Пока что доступно 7 задач. Я гарантированно сдал A, B, E. После систестов должны зайти еще C и F. На D написал решение на 74 балла, пока не знаю как улучишть. На G написал на 20 (очевидное решение сходу), пока не думал над этой задачей.


Михаил Долинский

Темы: 1984
Сообщений: 47242

Мой профиль
Молодец, Андрей, что продолжаешь писать.
Хорошо бы всем так делать.
Саша и Лёша начинали и бросили, а жаль.


Андрей Костяной:

30.11.2020 - 16.12.2020

G -- задача на силу рук (знание формулы для подсчета кол-ва различных подстрок в множестве строк, это стандартная штука написана ан емаксе в разделе про суффиксный массив) 
Предлагаю дать на теории эту задачу и другие на "стандартные штуки", возможно неизвестные некоторым из республиканцев (или даже всем, кроме тебя)

Мы решили рискнуть и остались ни с чем. 
Решение то правильное, непонятно как Вы загнали себя в такую ситуацию.

Все задачи ВКОШП я уже дорешал:  
Молодец

1-ый не закрыл потому что ошибся в Дейкстре. 
Недостаточный анализ. А отладка не могла помочь?
Ты занимался этой задачей больше трёх часов (отладкой - два часа). Ты ДОЛЖЕН сдавать задачу в таком случае.
Конечно, лучше не делать ошибок при написании.
Но надо придумать ГАРАНТИРУЮЩУЮ РЕЗУЛЬТАТ стратегию поиска и локализации ошибок.

14.12.20 13:58 yownerk 88 Не пройдены тесты: 24-25,36,44-45,50 main.g73 DelTA3 at NIT0
14.12.20 13:54 yownerk 84 Не пройдены тесты: 19-20,24-25,35-36,44,50 main.g73 DelTA3 at NIT0
14.12.20 13:52 yownerk 74 Не пройдены тесты: 13,24-27,33,36-37,40,42,44,46,50 main.g73 DelTA3 at NIT0
14.12.20 13:45 yownerk 84 Не пройдены тесты: 19-20,24-25,35-36,44,50 main.g73 DelTA3 at NIT0
14.12.20 13:39 yownerk 64 Не пройдены тесты: 13,19-20,22-26,28,33,35-37,40,42,44,46,50 main.g73 DelTA3 at NIT0
14.12.20 13:38 yownerk 84 Не пройдены тесты: 19-20,24-25,35-36,44,50 main.g73 DelTA3 at NIT0
14.12.20 13:35 yownerk 64 Не пройдены тесты: 13,19-20,22-26,28,33,35-37,40,42,44,46,50 main.g73 DelTA3 at NIT0
14.12.20 13:34 yownerk 14 Не пройдены тесты: 4-6,8-15,18-29,31-50 main.g73 DelTA3 at NIT0
14.12.20 12:02 yownerk 84 Не пройдены тесты: 19-20,24-25,35-36,44,50 main.g73 DelTA3 at NIT0
14.12.20 10:41 grasshopper 100 Все тесты успешно пройдены main.g73 DelTA3 at NIT0
Андрей Костяной

Темы: 121
Сообщений: 274

Мой профиль
17.12.2020 - 31.12.2020

Прошли сборы к области. Вот отчет по контестам:
3-ий и 4-ый день сборов контесты не закрыл по одной и той же причине -- начинал писать первую пришедшую в голову идею. Нужно было чуть дольше подумать, тогда пришла бы в голову более простая идея, которую проще сдать. Оба контеста дорешал на фулл.

5-ый день сборов. 4 задачи сдал на контесте. D сдал на 94, мог исправить на 100, но у меня было 45 баллов по F, поэтому решил улучшить баллы по ней. Придумал решение на 70, но это произошло минут за 30 до конца, из-за чего не успел сдать это решение на контесте. В дорешку сдал эту идею.

На 100 не дорешал, так как в разборе сказали одну вещь, не доказывая ее. Я могу написать это решение, но я не понимаю его правильности, поэтому считаю, что сдавать его -- это неправильно.

6-ой день сборов. Было 5 задач. 4 сдал на контесте, были не сложными. 5-ую не придумал на контесте, сдал только на 32 идею за O(2 ^ n * n). В разборе задачи мне было не понятно, как реализовать один момент. Написал Егору Дубовику -- он рассказал другое, более просто решение, которое спокойно зашло на 100 баллов.

7-8 день сборов я закрыл контесты, так как они были довольно простыми.

Открыл для себя сайт Atcoder. Там иногда (как я понял, в среднем раз в месяц) проходит Atcoder Grand Contest с очень качественными задачами. Как я понял, основная фишка "больше думай, меньше пиши" (сдал 3 задачи суммарно на +- 150 строк кода, и это с моими отступами). Дорешал с AGC 50 4/6 задач. Еще 2 явно вне зоны моего ближайшего развития.

Написал отбор на MWJ 2021. Задачи были простыми, закрыл за +- 2 часа из 4. Занял третье место. Единственное -- долго не мог сдать А, потому что там былл ввод m, n. А я как обычно читал n, m. Вывод: внимательнее читать формат ввода/вывода.

Протестировал (сдал все задачи, но я заранее знал решения) контест Мищенко для сборов в Мозыре. 1 изик, 1 изик, но посложнее, 1 красивая конструктивная задача и 1, скорее всего, гроб.

На открытую олимпиаду вчера (30.12) залили новые задачи. Пока заслал одну из них на 78 (максимальный видимый балл), должно быть полное решение.

Написал вчера (30.12) goodbye 2020 на codeforces. Сдал 6/9 задач, но затупил над Д из-за чего D,E,F были сданы с плохим временем. Из-за этого получил -17.
G не сдал из-за того, что по условию была дана гигантская строка. А до этого задачи с гигантскими строками я решал только используя автомат по КМП. И я зациклился над этой идеей, что нужно использовать автомат и ничего не придумал. А нужно было подумать над задачей больше в сторону ДП. +прием.

Написал codechef lunchtime. Раунд, к сожалению, был не рейтинговым, из-за чего я его полностью и не решал. Было 2 совсем простых задачи, еще 2 не оч сложные и 2 нормалные. 4 простых и 1 нормальную дорешал, а еще на одну пока не выложили разбор.

Также я дорешивал всякие старые задачи:
1) https://codeforces.com/contest/1415/problem/F красивая задача на ДП с отбора на Технокубок;
2) https://codeforces.com/contest/1450/problem/E интересная задача с global 12. Нужно было представлять равенства, как два неравенства и сводить все это к графам;
3) https://codeforces.com/contest/1450/problem/F интересная задача с global 12. Нужно было придумать жадник;
4) https://codeforces.com/contest/1305/problem/G интересная задача на графы. Сводится к поиску MST в графе, в котором есть ребра между вершинами, если (Ai AND Aj) = 0. Это решается с помощью оптимизированного алгоритма Борувки и ДП по подмножествам.
 
Индекс форума ->Олимпиадное программирование ->Методика подготовки к IOI 2007 - ... 1, 2, 3, 4, 5, 6, 7
Time:0,057