Здравствуйте дамы и господа ! Мне требуется ваша помощь . Объясните , что нужно сделать или кого нужно попросить , чтобы найти себе тренера. Я ( школьник ) готовлюсь к различным олимпиадам по информатике и решаю задачи на данном сайте. Но иногда возникают трудности с решением,пониманием задач ( даже разборы и коды других участников не помогают ) Вот по вышеизложенной причине ищу себе наставника.
Быть тренером часто неблагодарное дело, учишь кого-то, а он/она потом раз и забивает на всё. Быть учеником часто тоже неблагодарное дело, ты хочешь фильм посмотреть, поиграть, погулять, а тренер говорит учи алгоритм решай задачу.
Я понимаю , что если хочешь заниматься с тренером , нужно его обязательно слушать его советы , наставления . Я не тот человек , который может психануть и бросить олимпиаду , и готов слушаться. Спасибо за разъяснения !
Ну если иногда не понимаешь разбор задачи или чужой код, можно попросить любого желтого/красного помочь или спросить автора кода об идее, которая была реализована. А можно пример того, чего ты не понимаешь?
Например 135B - Прямоугольник и квадрат не могу понять суть решения и возникают трудности при реализации.
Перебираем все варианты, проверяем, образуют ли 4 точки прямоугольник/квадрат. В чем проблема?
Проблема в реализации проверки.Такие проблемы частенько возникают. Спасибо за разбор)
Это типа "**Адекватный школьник ищет неадекватного тренера"**?
Или наоборот?
Просто ава мне понравилась,вот я её и выставил. А я , вроде бы , адекватный парень )
UPD Решай acmp.ru) На CF в общем-то уже соревноваться надо, показывать то, что уже знаешь, ну и приемчики на вооружение брать. Реши 300+ задач непосредственно для школьников (и с использованием разборов, и всяких разных шпаргалок, так даже лучше) и все вопросы твои отпадут. А если уж это не поможет, то тогда наверное и имеет смысл обращаться за помощью к действительно ТРЕНЕРУ, который бы скорректировал твою подготовку. Если хочется подтверждений — можешь посмотреть на корреляцию моих результатов здесь и статистикой на acmp) Ну или даже вот. И конечно надо разбирать алгоритмы готовые, теорию (формулы и др.), на соображалке одной не вытянешь (а без тренировок не сможешь закодить даже то, что знаешь).
Конечно же , я решаю , но иногда возникают трудности и некому мне помочь.Поэтому я ищу тренера.
Что я понимаю под приемчиками — например надо определить, есть ли в массиве хоть один элемент, удовлетворяющий условию (пусть > 0).
вроде бы банальный метод, однако с использованием операций & ^ он может стать обалденно мощной штукой) ну и без знания подобных примитивов в коде начинают появляться такииие демоны...
Спасибо за советы )
Подскажи, пожалуйста, как можно развить саму соображалку. Я решил не одну сотню задач, знаю большинство тем задач, знаю много приемов кодинга, больших и маленьких, ну, и в общем, вот моя статистика на acmp. Но таких качеств, как креативности и изобретательности мне явно не хватает, что доказал мой эпик фейл на предыдущем контесте: я не смог додуматься до легкого линейного решения к задаче С, и в конце концов решил деревом отрезков. Как развить соображалку?
Ну если смотреть на вашу статистику по прошлым раундам, то 3 задачи это не так плохо, это раз. По чесноку я тоже успел написать build(), но когда заметил (a[i] <= a[i+1]) понял, что здесь что-то не так, представил, и увидел что делать. Собсно, о чем я — вам стоит убедиться в том, что проблема именно в соображалке) Я видел что и желтые решали деревом отрезков, это просто недостаточный реверс-инжиниринг условия) Зачем давать дерево отрезков на задачу А див1? Ну кому это в голову придет? Задача А див2 это всегда до чего-нибудь догадаться и подсчитать. В див1 обычно нужна какая-то формула и небольшая надстройка над ней в виде алгоритма простенького, или просто надо как-то особенным образом выбрать значения, которые в нее подставить. Но если вам все же интересны те способы развития креативности, о которых я знаю — надо заставлять мозг делать привычные дела непривычными способами, тогда он начнет изыскивать больше путей решения различных задач (он ведь всегда аналогии с приобретенным опытом простраивает). Я раньше этим увлекался, даже моторику левой руки развил, таблицами Шульте баловался, еще там разными вещами, не знаю уж, как мне это помогло мне) Можете и вы попробовать, но на мой взгляд для успехов в конкретной области все же лучше просто более внимательно относиться к мелочам, разбирать все что непонятно и не висеть на месте (но это скорее следствие искренней заинтересованности).
Никак. По себе знаю.
В данном случае делать проверку до самого конца массива, если нужно узнать, удовлетворяет ли условию хотя бы один элемент, неуместно. Лучше обрывать поиск сразу после нахождения хотя бы одного такого. А если нужно использовать время ещё экономнее, можно проверку делать не на готовом массиве, а на строящемся, при присвоении элементу значения.
Вообще сложность алгоритма оценивается без учета коэффициентов, так что можно и до конца пробежать (поиск элемента в не сортированном массиве это ведь O(N)). Ущерб в виде некоторого кол-ва проверок, выигрыш в унификации, меньше шанс запутаться. Но если у меня будет TL68 я конечно начну решение просовывать и делать разные таки вот оптимизации) По поводу посчитать при построении — идея, думаю если бы такая возможность была, то приведенного выше кода у меня бы в решении и не появилась)
А о каком конкретно решении идёт речь, что вычисление "на лету" считается негодным?
Я, наверное, не готов сейчас для полезной дискуссии на эту тему, но скажу — думаю ни один способ не может быть признан негодным, если работает. Просто я выражал свою мысль и извлек из памяти нечто удобное, что было мной замечено в своем стиле написания кода. Еще очень часто у меня появляется int ans ближе к концу (если решение в несколько этапов). А в самом конце cout << ans, хотя обычно пользуюсь printf) А вот точно — пока ответ писал понял зачем я делаю так — можно ведь исправить += на *= и тогда уже будет проверка на удовлетворение условию для всех элементов массива.