Pull to refresh
0
0
Виктор @Tippler

User

Send message

Олимпиадные задачи по программированию: что за зверь?

Reading time5 min
Views62K
Недавно мы анонсировали конкурс задач по спортивному программированию. Организаторы конкурса попросили написать короткое объявление о конкурсе в блог ABBYY, но строгий редактор отказался печатать анонс без объяснения того, что же такое олимпиадная задача. Из этого родилась целая статья. Начнем, пожалуй, с примера олимпиадной задачи.
Этот же пример, чтобы по ссылке не ходить

ИТ-рестораны


ограничение по времени на тест: 4 секунды
ограничение по памяти на тест: 256 мегабайт
ввод: standard input
вывод: standard output

В городе N. очень плохо с дорогами, общепитом и IT-инфраструктурой. Всего в городе n перекрестков, некоторые пары которых соединены двусторонними дорогами. Дорожная сеть состоит из n - 1 дороги, по дорогам можно добраться с любого перекрестка на любой другой. Да, вы правы — дорожная сеть образует неориентированное дерево.

Недавно мэр города придумал способ, устраняющий проблемы с общепитом и IT-инфраструктурой, причем одновременно! Решено поставить на перекрестках города ресторанчики двух известных сетей кафе для IT-шников: «iMac D0naldz» и «Burger Bing». Так как владельцы сетей не дружат, категорически запрещается размещать рестораны двух разных сетей на соседних перекрестках. Есть и другие требования. Вот полный список:

  • в каждом перекрестке должен находится не более чем один ресторан;
  • каждый ресторан принадлежит либо «iMac D0naldz», либо «Burger Bing»;
  • каждая сеть должна построить не менее одного ресторана;
  • не существует пары перекрестков, которые соединены дорогой и на которых стоят рестораны разных сетей.

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

Помогите мэру проанализировать ситуацию. Найдите все такие пары (a, b), что a ресторанов может принадлежать «iMac D0naldz», b — «Burger Bing», а сумма a + b максимальна.

Входные данные

В первой строке входных данных содержится целое число n (3 ≤ n ≤ 5000) — количество перекрестков в городе. Далее в n - 1 строке перечислены все дороги, по одной дороге в строке. Каждая дорога задана парой чисел xi, yi (1 ≤ xi, yi ≤ n) — номерами соединяемых перекрестков. Считайте, что перекрестки пронумерованы от 1 до n.

Гарантируется, что заданная дорожная сеть представляет собой неориентированное дерево с n вершинами.

Выходные данные

В первую строку выведите целое число z — количество искомых пар. Далее выведите все искомые пары (a, b) в порядке увеличения первой компоненты a.
Примеры тестов
Входные данные

5
1 2
2 3
3 4
4 5

Выходные данные

3
1 3
2 2
3 1

Входные данные

10
1 2
2 3
3 4
5 6
6 7
7 4
8 9
9 10
10 4

Выходные данные

6
1 8
2 7
3 6
6 3
7 2
8 1


Первое, что бросается в глаза, это необычное условие. Такой подход сложился исторически: писать краткую математическую формулировку не принято. Обычно ее пытаются связать с реальной жизнью, ну или с не очень реальной. Например, в USACO героями всех задач являются фермер Джон и коровы. Прежде чем приступить к решению после прочтения условия, участнику требуется выделить математическую формулировку задачи.
Читать дальше →

Встать на рельсы за четыре месяца или Finance on rails

Reading time4 min
Views52K

Обойдусь без копипастов и даже ссылок о том, что Ruby за зверь такой, ибо написано было уже сполна. В данном посте просто хочу рассказать о пути изучения Ruby (и, впоследствии фреймворка Ruby on Rails) человека далекого от программирования.

1. Любопытство

«Насколько далекого?», спросите вы, а я отвечу — «Чуть менее, чем полностью», так как в десятом классе в школе у меня были уроки программирования, парочка из которых были уделены Паскалю. Признаюсь, впоследствии о html узнал, и даже мог в Dreamweaver-e сверстать страничку или поставить готовый движок, да по инструкции налепить плагинов, но не более.
Хотя компьютеры мне нравились, пошел я учиться на экономиста* — бакалавриат, магистратура по бух. учету и аудиту, аспирантура по финансам, работа в банке, преподавание, страхование. Но не жилось мне спокойно в финансах, — финансовый калькулятор удовлетворял необходимости решения тривиальных задач, но не удовлетворял мой мозг. А ему хотелось посчитать не только будущую и приведенную стоимость актива, но и создать массив данных из исторических стоимостей этого актива за n лет, высчитать среднюю доходность, дисперсию и, в конце-концов построить красивый график!
Читать дальше →

Концепт-арт — история, назначение, проблемы связанные с ним, и способы его создания

Reading time21 min
Views124K


Предисловие


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

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

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

Партия реверансов сделана, тылы прикрыты, паноптикум можно считать открытым.

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

Я не хочу того же для вас. Хочу, чтобы история была интересной, а посему – долой нудную теорию, долой правила, лекторский тон и никому не нужный апломб. Никаких графиков, таблиц и сравнений. Только эмоции и веселье, по возможности, наподобие этой работы. Один из артов которые я изготовил во время компании в поддержку финансирования разработки игры Wasteland 2.



Что же останется в статье, если убрать особливо техническую информацию, — спросите вы?
Читать дальше →

Организация High-Load cluster с несколькими нодами

Reading time8 min
Views21K
В ответ на этот этот топик решил написать свои соображения по тому, как стоит строить кластер для высоко нагруженных проектов.

Топик очень хорош. Очень приятно почитать подобное с точки зрения разработчика.

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

За время работы у меня выработалось некое виденье идеального кластера для тяжеловесных проектов. Это:

— 2 WEB сервера

— 1 DB сервер

— 1 балансировщик нагрузки.

Совсем не ново, но соображения связаны именно с балансировщиком нагрузки
Читать дальше →

Технология быстрого создания фонов для 2D-игр на базе 3D-заготовок (48 часов разработки)

Reading time15 min
Views151K

Вместо предисловия


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

Перед тем как начать я хотел бы сделать акцент на двух положениях:
Первое. Мы исходим из того что читатель знаком с такими пакетами как 3D Studio MAX (либо любым другим пакетом трехмерного моделирования) и Photoshop (или любым его аналогом). В данном конкретном случае я собираюсь использовать терминологию этих двух пакетов. Однако, не смотря на это те же самые принципы можно использовать, пользуясь любым другим софтом.

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

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

Хочу также отметить, что я не причисляю себя к мастерам, которые делают шедевры. Данное примечание я делаю для тех злых людей, которые говорят (или скажут после публикации), что я заносчив, что меня занесло под небеса, и тех кто вместо того чтобы работать предпочитает злословить словно ябедник Кийр из моей любимой книги Оскара Лутса «Весна».

С преамбулами покончено перейдем к сути.

Я утверждаю и не беспочвенно, что хороший фон можно и нужно создавать не за неделю, не за пять дней и даже не за три. Чтобы сделать хорошую картинку для казуальной игры, без разницы i-spy это, match-3 или аркада, достаточно 48 часов. Разумеется, при условии того, что человек занимается работой, а не просиживанием штанов.

image

Читать дальше →

Нужно ли калибровать цветные принтеры?

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

Читать дальше →

Чем светодиодная технология лучше лазерной? (и чем хуже)

Reading time9 min
Views151K


Терминология

Лазерная печать — распространённое название метода печати, использующего принцип сухого электростатического переноса. Суть принципа заключается в том, что красящее вещество (тонер) за счет электростатики «прилипает» к светочувствительному барабану в тех местах, где он подвергся воздействию источника света. Далее тонер перетягивается на бумагу за счёт электростатики, в результате чего на бумаге формируется изображение, которое закрепляется в печке принтера под воздействием температуры и давления.
Традиционно в качестве источника света используется один лазерный диод, луч от которого, проходя через систему развертки, попадает на светочувствительный барабан. Но лазерный диод — не единственный источник света, используемый в современных принтерах. Достойной и во многом интересной альтернативой лазеру являются светоизлучающие диоды (LЕD от Light Emmitting Diode) собранные в линейку и называемые Светодиодной Линейкой. Оба источника света позволяют производить отпечатки абсолютно идентичные по набору потребительских свойств. Однако у каждой из технологий есть свои особенности.

Рассмотрим светодиодную печать подробнее.

Читать дальше →

Светодиодная линейка в принтерах

Reading time1 min
Views15K
Светодиодная (LED — от Light Emitting Diode) линейка является источником света, засвечивающим поверхность фотобарабана в светодиодных принтерах. По своей сути она является альтернативой лазеру с оптической системой развёртки в классическом лазерном принтере и полностью заменяет его функцию, не меняя технологии электрографии.
Светодиодная линейка состоит из набора отдельных источников света — светодиодов, размещённых на текстолитовой плате. На одном дюйме светодиодной линейки может размещаться 300, 600 или 1200 отдельных светодиодов, что будет определять разрешающую способность принтера, в котором такая светодиодная линейка используется.


Читать дальше →

Цветная лазерная и светодиодная печать

Reading time4 min
Views33K
Основные принципы построения изображения и перевода его с «языка цифр» в видимый отпечаток полностью аналогичны тому, как это происходит в чёрно-белых принтерах. Поэтому рассмотрим здесь только создание цветного изображения, используемые для этого элементы и технологические решения. Для создания цветного изображения принтер должен сформировать на бумаге 4 накладывающихся друг на друга изображения, каждое из которых будет окрашено в свой цвет: голубой, пурпурный, жёлтый или чёрный. Это основные полиграфические цвета, участвующие в субтрактивной модели создания цветного изображения. Существуют 2 различных способа создания полноцветного изображения: многопроходная и однопроходная технология.


Читать дальше →

Как стать миллионером в AppStore или немного формул про продвижение и продажи. Часть 2

Reading time5 min
Views61K

Great Appeal или девушка на миллион



Девушка на миллион

Итак, в прошлой статье мы закончили на том, что разобрались с тем, как получить «показы» нашего приложения в AppStore.

Иногда ошибочно считается, что запуск – это самое сложное. Это, мягко скажем, не так. Настоящая работа начинается после запуска.

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

Кто виноват и что делать?

Черно-белая лазерная и светодиодная печать

Reading time6 min
Views24K
Продолжу тему познавательных статей и сегодня расскажем вам о специфике черно-белой лазерной (и светодиодной!) печати.

В основе технологии лежит принцип сухого электростатического переноса, а полное официальное название технологии — электрографическая печать. Суть этого принципа такова: источник света светит на предварительно заряженную поверхность светочувствительного вала (фотобарабана, фотовала). На тех местах, на которые попал свет, меняется заряд и к этим местам затем притягивается тонер. Затем этот тонер перетягивается за счёт электростатики на бумагу, на которой попадает в печку, где и закрепляется, под действием высокой температуры и давления. Отпечатки, сделанные таким способом, не боятся влаги, устойчивы к истиранию и выцветанию. Качество такого изображения очень высоко.


Читать дальше →

Групповая разработка сайтов через git — автоматическое создание/удаление сайтов из git-бранчей

Reading time6 min
Views22K
В этой статье я расскажу, как создать групповую среду разработки сайтов через git с помощью git-хуков. Статья рассчитана на опытных системных администраторов, я лишь опишу алгоритм.
Многое на эту тему уже обсуждалось, а я добавлю, как автоматически создавать или удалять сайты при создании/удалении бранчей в git-репозитории. Такая возможность может пригодиться, к примеру, если над разными частями сайта работают разные программисты и нужны разные площадки (бранчи). После основной разработки и тестирования выполняется merge в основную ветку, а бранчи и тестовые сайты удаляются или архивируются.

Читать дальше →

Chrome Remote Desktop вышел из беты

Reading time1 min
Views67K


Примерно год назад Google анонсировал интересное расширение Chrome Remote Desktop, которое было запущено в бета-версии (собственно, как и большинство сервисов от Google). Это расширение позволяет осуществлять удалённый доступ к другому компьютеру через браузер Chrome, независимо от операционной системы (Windows, Linux, Mac, Chromebook). Само собой, это расширение для браузера Chrome, а не универсальное приложение. Теперь разработчики доработали расширение, сделав его более функциональным и выведя из беты.

Читать дальше →

Art & Fear, или как выжить творческому человеку в современном мире

Reading time4 min
Views10K
«Эта тоненькая книжечка буквально перевернула мою жизнь»
Дмитрий Рудаков, фотограф, писатель, основатель ozon.ru


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

Об одной из таких издательских историй — книге Art & Fear — сейчас и пойдет речь.

image

Это не новая книга — в «Питере» она вышла в начале 2011 года, а первое американское издание датируется аж 1993 годом. Написали ее два известных американских фотографа — Дэвид Бейлс и Тэд Орланд. С момента выхода книга постоянно переиздается, общее число ее читателей в мире уже можно исчислять миллионами, несмотря на довольно узкую специфику, и в творческих кругах Запада она уже давно приобрела статус культовой.

О чем же эта книга?
Читать дальше →

Аналого-цифровое преобразование сигнала для начинающих

Reading time3 min
Views199K

Вступление


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

О сортировке контента на основе оценок пользователей: Часть 3

Reading time3 min
Views14K
В прошлой статье я вывел формулу, которая прогнозирует рейтинг на основе оценок статьи и средней оценки по сайту. Думал в этой статье, я покажу качество ее прогноза, улучшу прогноз за счет дисперсии. Однако, появилась еще одна проблема.
image
Читать дальше →

О сортировке контента на основе оценок пользователей: Часть 2

Reading time5 min
Views10K
Прошлая статья привлекла большой интерес. И даже, на некоторое время, стала лучшей за 24 часа. У меня появилось несколько идей и на часть вопросов в комментариях нужно ответить более развернуто.
image

Читать дальше →

MIMB – Мульти-установочная и мульти-загрузочная флэшка

Reading time2 min
Views58K
Привет, Хабрачитатели!

В повседневной практике часто нужен набор инструментов – Linux и иногда Windows LiveCD, а также установочные диски различных дистрибутивов. Диски легко подвергаются механическим повреждениям. Учитывая, что набор используемого инструментария и дистрибутивов у каждого не так велик (во избежания развода зоопарка) и зачастую вполне умещается на USB-носителе до 4G, целесообразно поместить все на одну флэшку.
К вашему вниманию флэшка для загрузки Live сборок Linux и Windows и установки дистрибутивов Linux. Подготовлен образ .img, который легко разворачивается при помощи dd. Кому интересно, подробности под катом.
Читать дальше →

Локализация игр — любители против профессионалов

Reading time8 min
Views24K

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

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

Но есть люди, которые не безразличны к сложившейся ситуации. О них и пойдёт речь дальше.
Читать дальше →
12 ...
24

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity