Олимпиадное программирование для начинающих. Разбор задач с олимпиад. Алгоритмы и структуры данных

Если у Вас сломалась компьютерная мышка, не спешите покупать новую. Вполне возможно, что Вы самостоятельно сможете починить поломку и устройство прослужит Вам ещё не один год.

Барахлит сенсор мыши

Часто случается также ситуация, когда мы не можем точно навести курсор на определённую точку. Он постоянно дрожит и перемещается сам собой. Такая ситуация явно указывает на засорение оптической группы мышки.

Засорение чаще всего бывает внешним. В отсек, где свет диода отражается от стола, попадает пыль или волосы. Чтобы избавиться от такого засорения не нужно даже разбирать мышку. Достаточно перевернуть её и продуть. В крайнем разе, воспользоваться небольшой кисточкой, чтобы удалить прилипший мусор.

Если же и после таких манипуляций курсор мышки дрожит, то, вероятнее всего, что либо сенсор засорился внутри, либо вовсе вышел из строя. В любом случае можно попробовать разобрать мышку и почистить сенсор при помощи зубочистки с намотанной на неё ваткой пропитанной спиртом:

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

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

Прокручивается колёсико мышки

Бывает так, что мышка работает нормально, но при попытке воспользоваться её колёсиком, страница, которую мы прокручиваем, начинает прыгать то вверх, то вниз, либо вообще не желает скроллиться. Увы, выход колеса мыши из строя - довольно частая поломка и именно она побудила меня к написанию данной статьи.

Для начала нужно внимательно рассмотреть, насколько равномерно колесо крутится в пазе. Сам паз и ось колеса имеют шестиугольное сечение, но иногда одна или несколько сторон этого шестиугольника может деформироваться, в результате чего будет наблюдаться проскальзывание оси в проблемном месте.

Если у Вас именно такая проблема, то она решается за счёт уплотнения края оси колеса скотчем или изолентой в небольших количествах. Если же с движением колёсика всё нормально, то поломка произошла внутри энкодера (датчика прокрутки). От длительного использования он мог разболтаться и его следует немного уплотнить:

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

Увы, в моём случае полностью избавиться от рывков не удалось. Да, частота и разброс в скачках страницы уменьшились, но сами скачки полностью не исчезли. Тогда я решил подойти к вопросу уплотнения радикально и истинно по-русски:) Вырезал из старой упаковки от батареек кусочек тонкого но плотного полиэтилена и воткнул внутрь механизма:

Что самое интересное, данная манипуляция помогла! Мне осталось только обрезать лишнюю длину полоски и собрать мышь:)

Не работают кнопки мыши

Последняя, и самая досадная, поломка - это нерабочая кнопка. Левая ли, правая или та, что под колёсиком не важно - они все обычно одинаковы. Важно то, что нерабочая кнопка практически никак не чинится. Можно только заменить её микропереключатель, выпаяв паяльником нерабочий и поставив на его место новый или позаимствованный из другой мышки.

Микропереключатель имеет три "ножки", первая из которых - обычный фиксатор, а две остальные - контакты, которые и требуется паять. Фиксатор припаивать не нужно. Он служит только в качестве "защиты от дурака" , чтобы Вы по ошибке не вставили микропереключатель не той стороной.

Иногда кнопка ещё работает, но срабатывает не при каждом нажатии. Такой симптом может сигнализировать о том, что от частого использования стерся край толкателя кнопки, который нажимает микропереключатель.

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

Последняя проблема с которой Вы можете столкнуться - кнопка мыши делает двойной клик при нажатии на неё. Решить это дело можно перепайкой микропереключателя или... программно! В любом случае перед тем как браться за паяльник проверьте правильность настроек мышки в Панели управления Windows:

По стандарту полозок скорости двойного щелчка должен находиться по центру, а опция залипания кнопок мыши - отключена. Попробуйте выставить такие параметры и проверьте, решилась ли проблема. Если нет, ещё один радикальный программный способ "лечения" двойного клика - удаление драйвера мыши. Как правильно удалить драйвер написано .

Выводы

Мышки - одни из наиболее активно используемых устройств компьютера. Поэтому неудивительно, что они часто выходят из строя. Однако, благодаря простоте их устройства, починить мышку в большинстве случаев может каждый!

Для этого необязательно уметь паять или разбираться в электронике. Главное чётко диагностировать причину поломки. Здесь, как в медицине, правильный диагноз - путь к успешному ремонту.

Надеюсь, наша статья позволит Вам определить, что именно сломалось в Вашей мышке, а значит, и починить поломку. Успешного Вам ремонта!

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.

Доброго времени суток дорогие читатели!

Мышка и клавиатура являются одними из самых используемых периферийных устройств. Именно поэтому у этих устройств, особенно у мышек, быстро появляются всевозможные проблемы в работе. Это может быть плохое срабатывание кнопок, двойное нажатие кнопок при одинарном клике, проблемы с колесом прокрутки (двигается рывками), проблемы с определением устройства системой. Большинство проблем вызвано механическим износом и попаданием загрязнений внутрь корпуса мышки.
Если у вас при нажатии кнопок мышки они плохо срабатывают или срабатывает двойной клик, то вероятная причина кроется именно в механическом износе. Все элементы манипулятора выполнены из пластмассы и при частом использовании они быстро стираются, появляется выработка. При нажатии хода кнопки мыши становится недостаточно, чтобы надежно сработала кнопка.

1. Не работает кнопка мышки

а) Обнаружить износ достаточно легко. Следует разобрать мышку, для этого достаточно отвинтить один-два шурупа с нижней ее стороны. Кнопки мышки могут иметь различную конструкцию, но в большинстве своем это пластиковая часть верхней крышки (или отдельный элемент), которая посредством пластмассового рычажка воздействует на кнопку, распаянную на печатной плате. На этом пластиковом рычажке и появляется выработка. Для восстановления работоспособности мыши необходимо зачистить поверхность рычажка с помощью надфиля или наждачной бумаги, обеспечив плоскую поверхность. Также обратите внимание на надежность крепления печатной платы и качество мест припоя кнопки.

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

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


2. Не работает колесико мышки (двигается рывками)

Для решения этой проблемы нам, конечно же, необходимо разобрать мышку, на этот раз мы будем работать с беспроводным манипулятором. И так откручиваем шурупы на нижней части мышки и снимаем верхнюю ее часть, далее откручиваем все шурупы, которые крепят плату к нижней части корпуса мышки. Теперь, когда плата откручена, приподнимаем её и аккуратно вытаскиваем колёсико из датчика прокрутки. Вот мы и добрались до неисправного элемента.

Причины неисправности могут быть таковы, разболтался механизм прокрутки мыши, при такой неисправности мы могли бы просто прижать четыре усика пассатижами и казалась бы все, починили, но с таким ремонтом в лучшем случаи ваша мышка прожила бы еще месяц. Так же причиной неисправности могли стать загрязненные контакты крутящегося механизма. Поэтому следующее, что мы должны сделать, это разобрать датчик прокрутки. Отгибаем четыре усика, что держат внутренности чувствительного элемента

и отогнём ту часть, что впаяна в плату тремя ножками

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

Все, разборка закончена, теперь остается только устранять и собирать обратно. Берем ватную палочку смачиваем ее в какой-нибудь спиртовой жидкости и протираем контактную поверхность. Теперь в обратном порядке собираем весь механизм обратно. После сборки необходимо укрепить механизм прокрутки мыши, для этого нужно установить П-образную скобу из металлической пластины.

Собираем мышку и смотрим результат наших трудов.

3. П роблемы с определением устройства системой

Возможны и программные ошибки в работе манипулятора. Проверить работу мышки следует сначала по возможности на другом компьютере или ноутбуке, если ошибки проявляются тоже, то, скорее всего причина в аппаратной части манипулятора. Программные ошибки возможны, скорее всего, с игровыми манипуляторами, которые требуют установки дополнительных драйверов или программного обеспечения, также можно в диспетчере устройств обновить драйвера или конфигурацию оборудования. Со стандартными устройствами проблемы с программным обеспечением очень редки. Но, тем не менее, если возникли проблемы, попробуйте отыскать и установить подходящий драйвер. Также проверьте правильность работы контроллера порта USB или PS/2. Возможно, придется обновить драйвер материнской платы, чтобы устранить проблему.

4 Дополнительно ко всему бывают и такие неисправности

1. Также причиной плохой работы кнопок и колеса прокрутки является обычная пыль, а точнее та, которая скопилась внутри корпуса мышки. Через несколько месяцев эксплуатации в мышке накапливается достаточно много пыли, ворсы, волос и других загрязнений. Все это отражается на работе колеса прокрутки. Колесо становится тугим, а прокрутка может происходить неравномерно. Следует разобрать манипулятор и аккуратно удалить всю пыль и другие частицы грязи. Пластиковый корпус мышки можно протереть влажными салфетками или промыть в теплой воде. Избегайте попадания влаги на элементы печатной платы, а если это случилось, не используйте мышь, пока влага окончательно не высохнет (лучше в течение суток).

2. Другой причиной проблем с мышкой может быть обрыв провода. Из-за энергичного использования манипулятора часто происходят обрыв тоненького проводка в месте припайки его к плате мышки или на разъеме. В этом случае также следует разобрать мышь и просмотреть место припайки проводов, а также проверить разъем. В случае обнаружения обрыва провода или отпаянной ножки разъема следует неисправность устранить. Если вы не обладаете достаточными навыками, то обратитесь к специалисту.

3. Следующая проблема с мышкой может крыться в разъеме подключения устройства к компьютеру. Современные манипуляторы подключаются через разъем USB, но в продаже все еще есть устройства для подключения через порт PS/2. Именно этот порт часто становится причиной возникновения различных сбоев в работе. Все дело в ненадежных контактах и способностью тонких штырьков разъема легко гнуться и отламываться. В случае смятия контактов их следует аккуратно выровнять. При этом следует быть осторожным и не повредить соседние контакты. С разъемом USB проблемы с плохим контактом бывает реже и проявляется в случае подключения устройства к сильно загрязненному порту.

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

Всем удачи и до нового ремонта.

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

А. и Б. Стругацкие.

«В наше время считается общепризнанным,
что из всего, так или иначе касающегося искусства,
ничто более не может считаться общепризнаным»

Теодор Адорно

Все началось с того, как один человек пытался выяснить решение задачи контеста, который проходил в данный момент. Задача была очень простая, всем было очевидно, что этот человек не займет хорошего места, не получит футболку и т.п. Но тем не менее ни один из 5000+ членов сообщества не дал ни одной подсказки (ну или хотя бы из 30+ человек, которые это видели и знали ответ). Мне такой результат уже давно кажется закономерным и я попробовал объяснить его в двух словах. Теперь попробую чуть более подробно. Заранее прошу прощения у людей, которые в это понятие вкладывают не то, что я. Я лишь хотел изложить свой взгляд.

Сначала немного теории из википедии: Программирование , Олимпиады по программированию , Искусство . Обратите внимание, в последней статье указано "Понятие искусства крайне широко - оно может проявляться как чрезвычайно развитое мастерство в какой-то определённой области".

Мне всегда казалось, что программирование, это своего рода искусство. Вот есть узкая область - класс олимпиадных задач по программированию. Умение быстро и точно решать задачи схоже со спортом, и часто олимпиадное программирование называют спортивным, ведь здесь, как и в спорте, сначала несколько лет тренируешься, потом один раз выступаешь, сливаешь все нафиг и забиваешь на программирование достигаешь некоторых результатов и радуешься им. Но с другой стороны спорт - не сильно творческое занятие. Обычно стратегии составляются не главными участниками и они не блещут оригинальностью и красотой. А в программировании все не так.

Никто не будет спорить, что стихи - искусство. А ведь, что такое стихи? Стихи - это умение вкладывать свои мысли в четкие рамки ритма и рифмы, стиля и словарного набора. Есть множество ограничений, которые не дают просто излагать то, что ты хочешь. Зачем же они? Это добавляет стиху красоты и изящества, это показывает, что автор вложил усилия, чтобы выразить свои мысли таким образом, соответственно, эти мысли были тщательно обдуманы автором, обточены и получили материальную форму в виде стиха. Кроме того, язык мыслей сильно отличается практически от всех языков мира, будь это язык слов, язык изображений, язык звуков или язык архитектуры.

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

Вот вы видите доску в городском доме творчества. На доске сверху ровными буквами написано "Выставка детских рисунков", а под надписью уже не столь ровно изображены различные эпизоды из детского быта. Попробуйте ответить - это искусство? Мой ответ - да, безусловно. Эти дети нашли свой способ общаться с миром, показывать ему свои мысли. Пусть они весьма примитивны и грубо изображены (хотя, бывает по-разному, некоторые дети способны на шедевры, которые и не снились взрослым художникам), но это искусство. Возможно, когда нибудь, один из этих детей будет писать легендарные картины, и люди со всего света будут приезжать, чтобы посмотреть на них. Все начинается с малого.

Я бы хотел, чтобы подобные общества были своего рода клубами искусства программирования(как, например, будетляне), в которых люди общаются, делятся секретами, творят вместе, помогают новичкам, но никогда не будут выдавать чужие мысли за свои.

Буду поддерживать список неплохих комментариев и дополнений.

Задача А: Паркет

Ограничение по памяти: 16 Мб

В далекой заморской земле в самом большом здании города, представляющем собой прямоугольник размерами N ´ M , решено положить новый паркетный пол. После продолжительных обсуждений на всеобщем городском совете был, наконец, одобрен следующий проект: фигурками вида (только такие паркетные доски и производит местная паркетная фабрика):
уложить вот такой рисунок (рисунок начинается с левого верхнего угла):


Ясно, что некоторые из приобретенных фигурок при укладке рисунка придется распилить. При этом возможно, некоторые части, на которые разделили фигурку, не будут участвовать в формировании рисунка. Вам необходимо определить минимальное количество фигурок требующих распила. Например, если размеры здания 3 x 4, то можно будет уложить 2 целых фигурки, а еще одну придется распилить. На рисунке ниже части, на которые распилили дополнительную фигурку, закрашены серым цветом.

Формат входного файла: В единственной строке входного файла содержатся два натуральных числа N и M , не превосходящие 10 9 – размеры прямоугольника, который необходимо замостить указанными фигурками.

Формат выходного файла: Необходимо вывести одно целое число – количество фигурок, которые придется распилить при укладке рисунка.

Пример:

parket.in

parket.out

Задача В: Словарь

Ограничение по времени: 1 секунда

Ограничение по памяти: 16 Мб

В языке одного из племен, затерянных на марсианских просторах, все слова одной и той же длины N , причем буквы в каждом слове попарно различны. В алфавите этого племени насчитывается N букв. Ученые-марсологи выяснили, что в словарь входят все возможные перестановки из N букв.

Переводчик в своем походном марсианско-русском словаре обозначает первую букву марсианского алфавита за « A », вторую за « B » и так далее (N не превосходит 20). Разумеется, слова в словаре упорядочены по алфавиту. И когда он встречает в какой-нибудь марсианской книге редко используемое слово, ему приходится долго листать словарь в поисках перевода. Помогите переводчику по марсианскому слову определить его порядковый номер в словаре.

Формат входного файла: В первой строке файла записано натуральное число N , не превосходящее 20, - длина слова. Следующая строка содержит марсианское слово для перевода. Слово состоит из заглавных латинских букв.

Формат выходного файла: Необходимо вывести одно целое число – порядковый номер этого слова в марсианско-русском словаре.

Примеры:

slovar.in

slovar.out

ABC

4


Задача C: Школа

Ограничение по времени: 1 секунда

Ограничение по памяти: 64 Мб

В школе некоторые из ребят хотели бы перейти из своего класса в другой, параллельный. Однако сделать это можно только в том случае, если кто-то из учеников этого класса также решит сменить класс – и освободит, таким образом, место. Скажем, ученик «10А» Антон сможет перейти в «10Г», если, например, Вера из «10Г» захочет перейти в «10Б», а Лена из «10Б» – в «10А».

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

Формат входного файла: В первой строке входного файла задано количество N учеников, желающих перейти в другой класс. Каждая из следующих N строк состоит из имени ученика, буквы класса (отделенной от имени одним пробелом), в котором он учится, и отличной от нее буквы класса (также отделенной одним пробелом), куда хочет перейти. Используются только латинские буквы. Буквы класса – прописные. Длина имени ученика не превосходит 20.

Формат выходного файла: Одно целое число – длина максимальной цепи переходов.

Пример:

school.in




Top