Войти
Автомобильный портал - Двигатель. Замена свечей. Подсветка. Права и вождение
  • Эпифиз - квантовый компьютер в головном мозге
  • Как правильно купить квартиру через аукцион: каковы риски и особенности такого приобретения для покупателя?
  • Знак зодиака Стрелец: описание и характеристика
  • Знак зодиака Стрелец: описание и характеристика
  • Анахата чакра — за что отвечает и как ее раскрыть Кундалини йога от Майи Файнс
  • Притча о лжи Почему сила в правде
  • Поисковый алгоритм яндекса. Принципы ранжирования поиска яндекса

    Поисковый алгоритм яндекса. Принципы ранжирования поиска яндекса

    В этом году Яндекс решил не дожидаться весны, и сходу обрушился на вебмастеров известиями о запуске нового мобильного алгоритма и результатах стартовавшего еще в декабре алгоритма по борьбе с кликджекингом. А про «буйства» прошлого года и вовсе страшно вспоминать. Чтобы помочь вебмастерам сосредоточиться на главном, редакция SEOnews собрала основные тренды продвижения в Яндексе и попросила экспертов дать советы, исходя из нововведений прошлого ­– начала этого года.

    Ссылки

    Прошедший 2015 год был по-настоящему годом ссылок. Точнее, он окончательно утвердил антиссылочную политику Яндекса. Запущенный в середине мая алгоритм показал даже самым скептически настроенным SEO-специалистам, что олдскульная закупка ссылок не просто не работает, но и ведет к печальным последствиям для сайта. А обновленный меньше чем через полгода АГС окончательно , что покупные ссылки убивают не только приобретающие их сайты, но и продающие.

    Кейсы по выходу из-под «Минусинска» наглядно продемонстрировали, что избавиться от алгоритма несложно: главное – снять так называемые SEO-ссылки. Естественные и качественные ссылки в свою очередь только положительно сказываются на ранжировании, так что в новом году продолжаем прокачивать скилы по наращиванию естественной ссылочной массы.

    Алексей Бузин, генеральный директор компании «СЕО-Импульс» :

    Яндекс с введением в 2015 году алгоритма «Минусинск» заставил многих SEO-оптимизаторов переосмыслить свое отношение к покупке ссылок. До сих пор немалое количество сайтов находится в топ 10 по конкурентным тематикам с большим количеством откровенно покупных ссылок, но это не значит, что «Минусинск» их обошел стороной. Порог «спамности» ссылочного профиля постепенно повышается, поэтому мы рекомендуем тем владельцам сайтов, которые использовали получение ссылок через биржи, заняться тщательной чисткой ссылочного профиля либо обратиться за помощью к компетентным специалистам, которые помогут им сделать это.


    Александр Дронов, старший менеджер отдела поискового продвижения компании i-Media :

    Пора начать работать над стратегией получения естественных и качественных ссылок. Внешние факторы ранжирования никто не отменял. «Пингвин» и ручные санкции от Google, а также «Минусинск» и АГС от Яндекса дали понять: пора прекращать покупать абы какие ссылки с анкорами в виде ключевых запросов. Подобные ссылки по определению не могут быть естественными, и рано или поздно за них последует наказание в виде пессимизации сайта в выдаче.

    Олег Сахно, руководитель отдела производственных услуг Cubo.ru :

    Безопасность

    Еще один важный момент, про который уже не первый год говорят в SEO-среде, это безопасность. В 2015 году Яндекс уделил довольно много внимания вопросу безопасного пользования интернетом (говоря о безопасности, Яндекс имеет в виду конфиденциальность и целостность пользовательских данных). Чего стоят одни его ухищрения в Я.Браузере вроде или появление о страницах, подписывающих пользователей на платные мобильные услуги.
    Одним из первых крупных подтверждений серьезности намерений Яндекса стало проведение тестирования «безопасной выдачи». В течение ограниченного периода времени поисковик ниже ранжировал сайты, представляющие, по его мнению, опасность для пользователей, а в сниппетах таких ресурсов появлялось уже привычное «Сайт может угрожать безопасности вашего компьютера или мобильного устройства». Учитывая, что такая выдача пользователям понравилась больше, команда Яндекса в серьез сделать безопасность сайта одним из критериев ранжирования.


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

    Еще раз взгляните на свой сайт и ответьте на несколько вопросов. Вызывает ли он у вас самих доверие? Не установили ли вы на нем какие-то подозрительные сервисы, которые в погоне за сиюминутной выгодой могут привести к долгосрочным негативным последствиям? Может ли пользователь доверить вам свои данные и можете ли вы гарантировать ему их безопасность? Мы не призываем всех повально переходить на HTTPS или устанавливать десятки степеней защиты. Просто отнеситесь с уважением к своим посетителям и помните, что небезопасные сайты теперь наказываются пессимизацией.

    Александр Гайдуков, руководитель комплексной оптимизации сайтов в iSEO :

    Безопасность (защищенные протоколы, «проверенные» CMS с минимальными рисками, отсутствие скрытых скриптов и фреймов для сбора данных и др.). Недавно мы столкнулись с фильтром Яндекса за кликджекинг, будьте внимательны.

    Юзабилити

    Пожалуй, это один из несменяемых трендов последних нескольких лет. Здесь сложно отметить, что-то новое, но и пропустить его нельзя. В 2016 году мы продолжаем делать сайты, которые будут удобными и понятными для пользователей. Сделать их такими помогут аналитика и A/B-тесты.

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


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

    Александр Гайдуков, руководитель комплексной оптимизации сайтов в iSEO:

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

    Тренд в юзабилити на 2016 год, несомненно – мобилопригодность. Поиск на мобильных устройствах, это уже половина от общего трафика. При этом надо знать меру и относиться с уважением к пользователям и их приватности. Собственно, поэтому и введены санкции за кликджекинг. По сути, все нововведения в юзабилити - это всё та же мантра: делайте сайты для людей.

    Контент

    Один из главных 2016 года – контент-маркетинг. И это неслучайно. Есть ощущение, что мы снова возвращаемся в эпоху Content is the king. Особенность работы с контентом на данном этапе заключается в его разнообразии. Сегодня контент сайта – это не просто полезные и интересные статьи с деликатно размещенными ключевыми словами, но и инфографики, рекомендации, видео и разного рода интерактивные форматы. И да, все это должно быть красиво оформлено и размещено так, чтобы пользователь мог легко найти интересующую его информацию.

    Еще один важный момент – контент уже давно перестал быть «переносчиком ключевых слов». Теперь он решает конкретные задачи пользователя (и таким образом улучшает ваши поведенческие факторы).

    К слову, Яндекс открыл для себя новый способ оценки качества контента: теперь для получения более подробных данных о страницах сайтов и просмотра контента в том виде, в котором он отображается в браузере, поисковик JavaScript и CSS.

    Олег Сахно, руководитель отдела производственных услуг Cubo.ru:

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

    Mobile

    В 2016 году Яндекс подхватил инициативу Google по развитию мобильного направления. Намеки о том, что flash-элементы попаданию видео в мобильный поиск в итоге переросли в полноценный алгоритм . Как и у Google, алгоритм Яндекса влияет только на мобильную выдачу: более адаптированные сайты получат там преимущество. Адаптивнность ресурса Яндекс определяет по двум критериям:

    1. Нет горизонтальной прокрутки. Контент страницы адаптирован под размер экрана.

    2. Отсутствуют элементы, которые не работают на популярных мобильных платформах (например, упомянутые выше flash-ролики).

    Определить, как обстоят дела с этими критериями у вас на сайте, не составит труда. Для этого никаких mobile-friendly test’ов не нужно. Но даже если до сегодняшнего дня вы игнорировали идею о мобильном или адаптированном сайте и считали это «излишеством», которое вашему бизнесу ни к чему, подумайте о том, что мобильный трафик по всему миру уже обогнал десктопный. А терять в кризис драгоценных клиентов недопустимо. Так что посмотрите, что о разных вариантах «мобилопригодности» эксперты, и делайте свой выбор.

    Алексей Бузин, генеральный директор компании «СЕО-Импульс»:

    Как и Google, поисковая система Яндекс как бы намекает в своем новом кабинете вебмастера , в разделе «Диагностика сайта», о том, что необходимо сделать сайт mobile-friendly. Инструмент намекает оптимизаторам, что вскоре не будет мобильных и десктопных сайтов. Будут только новые и старые ресурсы.


    Александр Дронов, старший менеджер отдела поискового продвижения компании i-Media:

    Уделяйте особое внимание мобильной выдаче и тому, как в ней выглядит ваш сайт. Google с прошлого года хуже ранжирует в мобильном поиске сайты без адаптивной верстки или мобильной версии. А на днях Яндекс анонсировал запуск нового алгоритма «Владивосток», анализирующего сайт на «мобилопригодность» и учитывающего данный аспект при его ранжировании в мобильной выдаче. Ничего удивительного: доля мобильного трафика непрерывно растет, и поисковые системы не могут игнорировать данное обстоятельство. По нашим прогнозам, этот тренд будет набирать обороты. Поэтому начинайте анализировать мобильную выдачу и работать над своим местом в ней, а не концентрировать усилия исключительно на десктопной версии сайта и десктопной выдаче.

    2 ноября 2016 года Яндекс обьявил о введении нового алгоритма поискового ранжирования «Палех». Теперь вебмастерам придется подстраиваться и под его требования.

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

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

    Причем он ориентирован не просто на низкочастотные запросы, а — на очень-очень низкочастотные и даже уникальные запросы. А такие запросы опытных сеошников, как правило, мало интересуют, что дает нам шанс привлечь на свои сайты больше посетителей.

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

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

    В результате Яндекс получил возможность активнее ранжировать фразы из т.н. «длинного хвоста»; тем, кто забыл, что это, напомню.

    Что такое «длинный хвост»

    В 2004 году шеф-редактор журнала «Wired» Крис Андерсон провел исследование продаж товара (любого товара). Его интересовал вопрос: что в наибольшей степени приносит прибыль – наиболее популярные сегодня товары (т.н. бестселлеры) или товары, выбывшие из списка бестселлеров и перешедшие в разряд ширпотреба (рестселлеры).

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

    Если расположить все эти данные на графике, то получится примерно такая картина:

    Эта теория была применена к разным областям человеческой деятельности, в том числе и к SEO. И дала превосходные показатели: оказалось, что по запросам, составляющими «длинный хвост», переходят до половины пользователей Интернета.

    Представьте, что вы живете в Череповце и желаете купить стол. Вы будете писать в адресной строке запрос «мебель» или же «купить двухтумбовый письменный стол в Череповце недорого»?

    Запрос «мебель» относится к топовым, а наш длиннющий запрос – к длинному хвосту. Чем больше слов употребляется в запросе, тем быстрее он окажется в самых низкочастотных. Обычно считают, что запросы с число слов более двух- трех относятся к низкочастотным, если слов еще больше — это типичный длинный хвост.

    Отличный пример приведен на картинке:

    Рис.2

    По статистике Яндекса из 280 миллионов ежедневных запросов примерно 100 миллионов – запросы из области длинного хвоста. И на такое количество запросов надо как-то реагировать, он и отреагировал – Палехом.

    Почему Палех?

    Картинки с «длинным хвостом» изображают по-разному, обычно используя изображения животных: крыс, ящериц и т.д. Вот например, динозавр:

    Рис.3

    Но поскольку сейчас у нас в стране угар патриотизма, то Яндексу надо было найти что-то такое, чего нет ни у кого, а только у русских. Он и нашел – жар-птицу:

    Рис.4

    Жар-птица часто изображается на палехских миниатюрах, отсюда и «Палех», понятно?

    Но изображение и название – дел десятое, нам-то, вебмастерам, что делать и чего ждать?

    Берем курс на Палех

    Сразу скажу, ждать от «Палеха» уже особенно нечего: он уже два месяца используется Яндексом и успел отранжировать сайты. Поэтому, если у вас за последнее время как-то изменились позиции сайта, то это его рук дело. Яндекс только обьявил 2 ноября, а так алгоритм уже действует.

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

    Естественно, Яндекс на хороших, так называемых трастовых, сайтах и контент считает хорошим. А как попасть в трастовые сайты? – Это долго и дорого. Самый быстрый путь ведет через . Там есть бесплатная регистрация, но сразу скажу, что у вас, новичков, шансов мало. И есть – 14.500 рублей плюс НДС. Здесь все попроще, но 100%-й гарантии вам никто не даст.

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

    VN:F

    ...И сообщите о ней друзьям:

    А еще Вы можете подписаться на рассылку -
    у меня в запасе есть много интересных материалов.

    Служебная информация о статье:

    В статье кратко расматриваются особенности нового алгори тма Яндекса и даются практические советы начинающим вебмастерам

    Written by: Sergey Vaulin

    Date Published: 11/08/2016


    Палех – новый алгоритм Яндекса , 5.0 out of 5 based on 3 ratings

    29 июля в Минске прошёл финальный раунд чемпионата по программированию Яндекс.Алгоритм . Победителем стал Егор Куликов - выпускник мехмата МГУ и бывший сотрудник Яндекса. Второе место - у Николы Йокича из Швейцарской высшей технической школы Цюриха. В составе команды школы он был финалистом ACM ICPC. Третье место занял Макото Соэдзима , выпускник Университета Токио. Геннадий Короткевич , победитель двух предыдущих Алгоритмов, занял шестое место.


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



    В этом году мы получили на четверть больше заявок на участие в Алгоритме, чем год назад, - 4578. Среди участников пока немного девушек - 372. В списке зарегистрировавшихся есть представители 70 стран; больше всего соревнующихся - из России, Индии, Украины, Беларуси, Казахстана, США и Китая. В финале приняли участие 25 человек.


    Задачи для Яндекс.Алгоритма составляют сотрудники Яндекса и приглашённые эксперты, среди которых - финалисты и призёры ACM ICPC. По условиям состязания, участники могут использовать разные языки программирования. Статистика Яндекс.Алгоритма показывает, что самый популярный язык - С++; его выбрали более двух тысяч человек. Второе место поделили Python и Java.

    Задача A. Место проведения финала



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


    Ромбокубооктаэдр это полуправильный многогранник, гранями которого являются 18 квадратов и 8 треугольников. Всего у ромбокубооктаэдра 24 вершины и 48 ребер. Изображение ромбокубооктаэдра представлено ниже:




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


    Так как ответ может достаточно большим, вычислите его по модулю 10 9 + 7.

    Формат входных данных

    В единственной строке входных данных записано одно целое число k (1 ⩽ k ⩽ 50), количество цветов в вашем распоряжении.

    Формат выходных данных

    В единственной строке выведите ответ на задачу.

    Примеры

    стандартный ввод стандартный вывод
    1 0
    3 356928

    Замечание

    Одним из вариантов корректной раскраски для k = 3 будет покрасить все треугольные грани в первый цвет (8 граней), все квадратные грани, смежные по ребру с одной из треугольных граней, во второй цвет (12 граней), и все оставшиеся квадратные грани в третий цвет (6 граней).

    Разбор задачи A

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


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


    Будем сначала красить первую долю, а только потом вторую. Заметим, что при фиксированной раскраске первой доли посчитать количество способов, которыми можно докрасить вторую долю, не составляет труда: каждую вершину второй доли мы красим в отдельности, а значит, общее число способов есть произведение по всем вершинам второй доли v величины k − adj(v), где adj(v) - количество различных цветов среди вершин, смежных v.


    Теперь надо каким-то образом перебрать раскраску первой доли. Если явно перебирать цвет для каждой вершины, это потребует порядка 50 12 ≈ 2,4 · 10 20 операций, что не уложится ни в какие разумные временные рамки. Будем перебирать не сами цвета вершин, а только их разбиение на одинаковые/разные цветовые группы. А именно - для каждой очередной вершины в ходе перебора будем принимать решение, отнести ли её к одному из уже имеющихся цветов вершин, либо завести ли для неё новый. Таких «сжатых» раскрасок уже не так много, всего 4 213 597 штук. Очевидно, информации, содержащейся в сжатой раскраске первой доли, достаточно для того, чтобы понять, сколькими способами можно докрасить вторую долю, надо только не забыть умножить это число на количество способов превратить данную сжатую раскраску в полноценную раскраску (оно равняется A(k, c) = k(k − 1)(k − 2)...(k − c + 1), где c - количество использованных в сжатой раскраске цветов).


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


    Альтернативное решение может перебирать раскраску на поясе из 8 средних квадратов, а дальше считать количество способов докрасить одну из половин и возводить его в квадрат, так как верхняя и нижняя половина ромбокубооктаэдра красятся независимо друг от друга.

    Задача B. Преобразование последовательности



    Вам дана последовательность a 1 , a 2 ,..., a n , исходно состоящая из n нулей. За один ход вы можете выбрать любой её подотрезок a l , a l+1 ,...,a r , а также произвольное целое число x и преобразовать последовательность этот подотрезок, заменив a l+k на a l+k + (−1) k · x для всех целых 0 ⩽ k ⩽ r − l.


    Требуется преобразовать исходную нулевую последовательность в данную последовательность b 1 , b 2 ,..., b n за минимальное число ходов. Имеется важное ограничение на последовательность b i: гарантируется, что все её элементы принадлежат множеству {−1, 0, 1}.

    Формат входных данных

    В первой строке входных данных находится единственное целое число n (1 ⩽ n ⩽ 10 5). Вторая строка содержит n целых чисел b 1 , b 2 ,..., b n (−1 ⩽ b i ⩽ 1).

    Формат выходных данных

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

    Примеры

    стандартный ввод стандартный вывод
    2
    -1 1
    1
    5
    1 -1 1 1 0
    2

    Замечание

    В первом тесте из условия можно получить требуемую последовательность за один ход, в котором x = −1, l = 1 и r = 2.


    Во втором тесте из условия можно действовать следующим образом:
    0 0 0 0 0 → 2 -2 2 0 0 → 1 -1 1 1 0

    Разбор задачи B

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


    Раз мы имеем дело с операциями вида «прибавить на подотрезке одно и то же число», то полезно перейти к последовательности, состоящей из разностей соседних элементов: перейдём от a 1 , a 2 ,...,a n к последовательности b 0 = a 1 , b 1 = a 2 − a 1 ,..., b i = a i+1 − a i ,..., b n = −a n . В этой последовательности элементов на один больше, и она удовлетворяет специальному условию, что b 0 + b 1 +… + b n = 0.


    Тогда прибавление константы x на отрезке исходной последовательности эквивалентно замене b l−1 → b l−1 + x и b r → b r − x.


    В последовательности a i встречались целые числа от −1 до 1, поэтому в последовательности b i будут встречаться целые числа от −2 до 2. За один ход, как мы уже выяснили, мы можем к одному из чисел прибавить x, а из другого вычесть x, и мы хотим добиться, чтобы в последовательности были одни нули.


    Назовём «весом» операции прибавления x и −x к двум элементам последовательности величину |x|.


    Докажем вспомогательный факт: если число b i больше (меньше) нуля, то не выгодно применять операции, в которых число b i увеличивается. Формально говоря, если есть оптимальная (т. е. кратчайшая) последовательность операций, в которой какое-то b i в какой-то момент увеличивается, то можно предъявить последовательность операций, в которой ни одно b i никогда не увеличивается, и которая имеет ту же длину.


    Действительно, пусть к b i применялись две операции, скажем, 1) b i → b i + x, b j → b j − x и 2) b i + x → b i + x − y, b k → b k +y, и, для определённости, где x,y > 0 и, для определённости, x ⩽ y.


    Давайте заменим эти две операции на две других: 1) b i → b i − (y − x) = b i + x − y, b k → b k + y − x и b j → b j − x, b k + y − x → b k + y − x + x = b k + y. Это две эквивалентные операции, они приводят к тем же результатам, но можно увидеть, что суммарный вес двух новых операций уменьшился: |y − x| + |x| = y − x + x = y < x + y = |x| + |y|.


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


    Это позволяет описать все доступные нам операции. Мы можем либо избавиться от −2 и 2 за один ход, либо избавиться от −1 и 1 за один ход, либо избавиться от −2, 1, 1 за два хода, либо избавиться от 2, −1, −1 за два хода.


    Понятно, что суммарный вес всех операций, которые мы произведём, есть сумма всех положительных чисел среди b i (которая противоположна по знаку сумме всех отрицательных чисел). У нас теперь бывают операции веса 1 и веса 2, и понятно, что чтобы минимизировать общее число операций, надо сделать как можно больше операций веса 2. Это приводит нас к жадному алгоритму, а именно - сокращать двойки с минус двойками, пока можем, а когда не больше не можем, сокращать единички и минус единички с чем получится.


    Таким образом, ответ это сумма всех положительных b i минус минимум из количества двоек и количества минус двоек.

    Задача C. Игра в шляпу



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


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


    Вам дано начальное расположение людей за столом. Определите, какое минимальное количество операций описанного вида надо произвести, чтобы каждый человек сидел напротив своего партнёра.

    Формат входных данных

    В первой строке входных данных находится целое число n (1 ⩽ n ⩽ 10 5), означающее, что за столом сидят 2n человек.


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

    Формат выходных данных

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

    Примеры

    стандартный ввод стандартный вывод
    3
    2 1 3 2 1 3
    0
    4
    2 1 4 2 3 1 3 4
    2

    Замечание

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


    Во втором тесте из условия один из оптимальных способов будет сначала поменять местами людей, сидящих на первой и седьмой позициях, а потом поменять местами людей, сидящих на седьмой и восьмой позициях, что приведёт нас к корректной рассадке: 3 1 4 2 3 1 4 2.

    Разбор задачи C

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


    Получившийся граф обладает тем свойством, что в нём из каждой вершины ведёт ровно два ребра (одно - диаметр, а второе - в вершину, в которой сидит человек из той же команды). Такой граф всегда представляет из себя объединение из какого-то количества циклов.


    Мы стремимся достигнуть ситуации, когда каждый цикл состоит ровно из двух диаметрально противоположных вершин, то есть когда всего имеется ровно n циклов длины 2.


    Поймём, как меняется наш граф под воздействием доступной нам операции. Пусть поменяли местами двух людей не из одной команды (иначе это бессмысленная операция), скажем, человека из вершины a с человеком из вершины b. Пусть партнёр человека a сидит в вершине a′, а партнёр человека b сидит в вершине b′. Тогда из графа пропадут два ребра aa′ и bb′ и образуются два новых ребра ba′ и ab′ (то есть новые рёбра будут идти крест-накрест между концами старых). Легко видеть, что такая операция может либо один цикл разъединить на два, либо не изменить количество циклов, либо склеить два цикла. Значит, ответ никак не меньше, чем n − c, где c - исходное количество циклов. С другой стороны, всегда можно добиться требуемого ровно за столько ходов: достаточно на каждом шаге брать пару сокомандников, которые сидят не друг напротив друга, и просто пересаживать одного из них так, чтобы он сел напротив своего партнёра. Эта операция строго увеличивает количество циклов на один.


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

    Задача D. Кучефицируй меня полностью



    Вы - простой паренёк, который хочет лишь одного: чтобы ему на день рождения подарили двоичную максимальную кучу, потому что у всех ваших друзей уже такая есть! Наконец, вы пошли с родителями в магазин, но, к сожалению, там закончились все двоичные кучи, и всё, что осталось - это старое полное двоичное дерево. Оно состоит из n = 2 h − 1 вершин, в которых записаны некоторые значения, не обязательно удовлетворяющие главному свойству максимальной кучи. К счастью, Старый Джо согласился помочь вам превратить это дерево в двоичную кучу за определённую плату.


    Полное двоичное дерево высоты h это корневое дерево, состоящее из n = 2 h − 1 вершин, пронумерованных от 1 до n, такое, что для любого 1 ⩽ v ⩽ 2 h-1 − 1 вершина v является предком для вершин 2v и 2v + 1.


    Двоичная максимальная куча высоты h это полное бинарное дерево высоты h, у которого в вершинах находятся значения h 1 , h 2 ,..., h n , при этом значение в любой вершине не меньше, чем значение в её детях (если у неё есть дети).


    Вам дано полное бинарное дерево высоты h, в вершинах которого находятся значения a 1 ,a 2 ,...,a n . Также, с каждой вершиной связана стоимость c v , означающая, что Старый Джо может как увеличить, так и уменьшить значение в вершине v на произвольную величину x > 0 за стоимость в c v x. Вы можете менять значения в произвольном количестве вершин.


    Определите минимальную стоимость преобразования данного полного бинарного дерева в максимальную кучу.

    Формат входных данных

    В первой строке ввода находится единственное целое число n (1 ⩽ n ⩽ 2 18 −1), количество вершин в полном бинарном дереве, которое вам досталось. Гарантируется, что n = 2 h − 1 для некоторого целого h.


    Во второй строке ввода находятся n целых чисел a 1 , a 2 ,..., a n (0 ⩽ a i ⩽ 10 6), текущие значения вершин дерева.


    В третьей строке находятся n целых чисел c 1 , c 2 ,..., c n (0 ⩽ c i ⩽ 10 6), стоимости изменения значений в вершинах дерева.

    Формат выходных данных

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

    Пример

    стандартный ввод стандартный вывод
    7
    4 5 3 1 2 6 6
    4 7 8 0 10 2 3
    19

    Замечание

    В тесте из условия оптимальным способом будет увеличить значение в вершине 1 на 2 ценой в 4 · 2 = 8 и уменьшить значения в вершинах 6 и 7 на 3 ценой в 2 · 3 = 6 и 3 · 3 = 9 соответственно. Таким образом, общая стоимость будет равна 8 + 6 + 9 = 23.

    Разбор задачи D

    Введём обозначения. Пусть L v (x) - это минимальная цена, которую надо заплатить, чтобы поддерево вершины v стало корректной кучей, а в самой вершине v стояло число, не превосходящее x. Пусть S v (x) - это величина, которая определяется абсолютно аналогично, только в самой вершине v должно стоять строго число x. Тогда ответ на задачу равняется значению минимума функции S v (x).


    Для листовых вершин v по условию имеем, что S v (x) = c v |x − a v |. Аналогично можно понять, что L v (x) = max{0, c v (a v − x)}.


    Выразим S v (x) через L 2v (x) и L 2v+1 (x) (то есть функцию S вершины v через функции L её детей). Верно следующее соотношение:


    S v (x) = c v |x − a v | + L 2v (x) + L 2v+1 (x).


    Действительно, если в вершину v мы ставим значение x, то мы платим, во-первых, за изменение самой вершины v, и во-вторых, мы должны поменять поддеревья v каким-то образом, чтобы значение в v оказалось не меньше значений в её детях, а эту стоимость мы можем получить из функции L для детей.


    L v (x) мы сейчас научимся считать по S v (x). Но давайте в этом месте остановимся и выскажем предположение, какой вид имеют функции L v и S v . Можно догадаться, что они будут кусочно-линейными функциями переменной x, но на самом деле верно даже более сильное условие: они будут выпуклыми кусочно-линейными функциями (другими словами, угол наклона каждого следующего звена возрастает). Давайте строго это докажем: пусть это верно для вершин 2v и 2v + 1. Тогда S v (x), как следует из формулы выше, тоже выпуклая кусочно-линейная функция (так как является суммой трёх выпуклых кусочно-линейных функций).


    Теперь уже L v (x) легко получить по S v (x): рассмотрим точку глобального минимума S v (x). До этой точки S v (x) убывает, а после неё возрастает. Для того, чтобы получить L v (x), надо просто заменить участок возрастания S v (x) на константный горизонтальный участок со значением, равным глобальному минимуму функции S v (x).


    Заметим, что для того, чтобы задать функции L v и S v , нужно O(size(v)) информации о точках излома этих функций, где size(v) - это размер поддерева вершины v. Действительно, точек излома в графике функции S v (x) не больше, чем суммарно точек излома в графиках функций S 2v и S 2v+1 плюс ещё одна точка излома из-за слагаемого c v |x − a v |. Получается рекуррента T(v) = T(2v) + T(2v + 1) + 1 на количество хранимой в худшем случае информации, решением которой является T(v) = size(v).


    Непосредственно реализовать основную формулу, используемую в задаче, можно за линейную сложность от размеров сливаемых функций. Таким образом получается решение за size(v) = nk = n · log 2 n.

    Задача E. Отделяй и властвуй



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

    • пустая последовательность является хорошей;
    • если X и Y - хорошие последовательности, то XY (конкатенация X и Y) также является
      хорошей;
    • если X - хорошая последовательность, а n - любое число, то nXn (число n, потом все элементы X, и, наконец, опять число n) также является хорошей последовательностью.

    Например, последовательность (1, 2, 2, 1, 3, 3) является хорошей, а последовательность (1, 2, 1, 2) - нет.


    Последовательность называется разделимой, если существует способ разбить ее на две хорошие подпоследовательности (любая из них может быть пустой). Например, последовательность (1, 2, 1, 2) является разделимой (поскольку ее можно разбить на хорошие подпоследовательности (1, 1) и (2, 2)), а последовательность (1, 2, 3, 1, 2, 3) - нет.


    Рассмотрим все последовательности из 2n чисел, такие что каждое число от 1 до n встречается ровно дважды. Сколько из них являются разделимыми? Найдите ответ по модулю 10 9 + 7.

    Формат входных данных

    В единственной строке ввода записано одно целое число n (1 ⩽ n ⩽ 500).

    Формат выходных данных

    Выведите одно целое число - ответ на задачу по модулю 10 9 + 7.

    Примеры

    стандартный ввод стандартный вывод
    1 1
    2 6
    4 2016

    Разбор задачи E

    Как проверить, является ли последовательность отделимой? Для данной последовательности построим граф на n вершинах. Вершины i и j соединим ребром, если пары соответствующих чисел нельзя включить в одну ПСП (т. е., например, когда числа расположены как (i, j, i, j) либо (j, i, j, i), но не (i, i, j, j) или (i, j, j, i)). Последовательность отделима тогда и только тогда, когда получившийся граф двудолен.


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


    Пусть мы знаем значения g(n), вычислим теперь f(n). Для произвольной отделимой последовательности рассмотрим компоненту связности, содержащую первое число. Пусть она содержит k пар чисел, тогда между ее элементами есть 2k промежутков, в каждый из которых можно поставить любую отделимой последовательность независимо друг от друга. Обозначим F (n, k) количество способов выбрать k отделимых последовательностей суммарной длины 2n. Тогда из рассуждений выше получаем f(n) = g(k) F(n − k, 2k). Величины F(n, k) тривиально пересчитываются друг через друга и очередные значения f(n).


    Как найти g(n)? Назовем конфигурацией спобов разбить 2n элементов на два множества и построить ПСП на каждом из них независимо. Количество конфигураций на 2n элементах t(n) вычисляется тривиально. Вычтем из этого количества все конфигурации, не относящиеся к примитивным последовательностям, оставшееся количество будет равно 2g(n). Снова рассмотрим компоненту связности, содержащую первое число, пусть в ней k пар чисел. Количество таких конфигураций равно 2g(k) T(n − k, 2k), где T (n, k) - количество способов выбрать k конфигураций с суммарным количеством элементов 2n. Таким образом, g(n) = (T(n) − g(k) T(n − k, 2k). Величины T(n, k) вычисляются тривиально через t(n), которые находятся явно. Суммарная сложность этого решения O(n 3).

    Задача F. Дроби



    Задана последовательность a 1 , a 2 ,..., a n , элементы a i которой являются дробями, записанными в виде p/q, где p - целое, а q - целое положительное (при этом их взаимная простота не гарантируется).
    Проверьте, что для каждой пары i,j (1 ⩽ i < j ⩽ n) существует как минимум одно 1 ⩽ k ⩽ n такое, что a i · a j =a k .

    Формат входных данных

    Первая строка входных данных содержит одно целое число n (1 ⩽ n ⩽ 3 · 10 5) - длину последовательности. В следующей строке записаны n дробей в формате p/q (p и q целые, |p| ⩽ 10 9 , 1 ⩽ q ⩽ 10 9).

    Формат выходных данных

    Выведите «Yes», если для каждой пары различных i и j найдётся требуемое k, и «No» в противном случае.

    Примеры

    стандартный ввод стандартный вывод
    1
    7/42
    Yes
    3
    3/3 0/1 -5/5
    Yes
    2
    2/1 3/2
    No

    Разбор задачи F

    Сократим все дроби. Произведём несколько наблюдений.


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


    Во-вторых, заметим, что в каждом из множеств 0 < |x| < 1 и 1 < |x| есть не более одно го числа. Действительно, если, например, на 0 < |x| < 1 есть больше одного числа, то выберем из всех представленных там чисел два минимальных по абсолютному значению (скажем, a и b), возьмём их произведение ab, и оно будет иметь ещё меньшее ненулевое абсолютное значение: 0 < |ab| = |a||b| < min{|a|, |b|}, а значит, оно не совпадает ни с одним из чисел в нашем множестве. Аналогично с диапазоном 1 < |x|.


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

    Яндекса опубликована статья о действии нового алгоритма, который назвали «Палех». Он кардинально поменяет выдачу по поисковым НЧ запросам пользователя, так как задача релевантной выдачи решается с помощью нейронных сетей.

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

    Что такое искусственные нейронные сети?

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

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

    Нейронная сеть после обучения может распознавать изображение на картинках.

    Пример работы поиска для микро и нч запросов

    На схеме две оси координат: поисковый запрос и заголовки веб-страниц. Чем ближе красная и желтая условные точки, тем релевантней страничка. На этом примере, как раз видно, что в title и в ответе поисковика нет пересекаемых слов. Но по смыслу это самая лучшая пара.

    Как повлияет искусственный интеллект поиска на работу вебмастера над оптимизацией сайта?

    Основа: запрос – заголовок.

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

    1. Уделять особое внимание содержимому title.
    2. Статьи, заточенные по низкочастотные и среднечастотные запросы делать с большим количеством знаков. Чем больше текст, тем легче вставить максимальное число длинных хвостов.
    3. Использовать подзаголовки для мкрч и ассоциаций (предложений по смыслу).

    Какие ошибки может допустить оптимизатор, подстраиваясь под новые условия?

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

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

    Что делать сео специалистам?

    Не нужно впихивать в тайтл нечеловеческие обороты и фразы.

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

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

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

    Яндекс не является цензором и не отвечает за содержание других сайтов, которые попадают в поисковый индекс. Об этом было написано в одном из первых документов компании «Лицензия на использование поисковой системы Яндекса», созданном еще в 1997 году, в момент старта : «Яндекс индексирует сайты, созданные независимыми людьми и организациями. Мы не отвечаем за качество и содержание страниц, которые вы можете найти при помощи нашей поисковой машины. Нам тоже многое не нравится, однако Яндекс - зеркало Рунета, а не цензор».

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

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

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

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

    Поэтому мы не продаем места в результатах поиска.

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

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

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

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

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

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

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