2010(6 задач)
2011(6 задач)
2012(6 задач)
2013(6 задач)
XI Нижегородская городская олимпиада по информатике им. В. Д. Лелюха, 2015г.(6 задач)
XII Городская олимпиада школьников по информатике им. В. Д. Лелюха, 2016 г.(6 задач)
Как известно, Берляндия — хорошо развитая страна, а поэтому в каждом городе есть школа. На недавнем съезде учителей стало ясно, что методики преподавания различных предметов во всех школах разные. Чтобы исправить это недоразумение, а также для улучшения качества образования было решено, что школам необходимо обмениваться опытом. Так как школы действительно разные, и у каждой имеется уникальный опыт, поступило предложение из каждой школы в каждую другую отправить делегата для перенимания опыта.
К сожалению, города в Берляндии находятся далеко друг от друга, поэтому их связывает минимальная возможная сеть дорог: из каждого города можно добраться по дорогам в любой другой не посещая ни один город дважды, но при этом лишь единственным способом. Также, еще большую проблему для учителей создает сложная система оплаты проезда по дорогам Берляндии.
Каждой дорогой владеет одна из K компаний, и для проезда по дорогам любой компании человек должен один раз купить проездной у этой компании. После этого он может проезжать по любым дорогам этой компании без дополнительной платы. Стоимость проездного i -ой компании ( 1 ≤ i ≤ K ) равна c i бурлей.
Каждому из делегатов нужно купить необходимые ему проездные. Помогите учителям посчитать, сколько же всего бурлей будут стоить все проездные для всех делегатов. Так как это число может быть большим, найдите остаток от деления этого числа на 1 000 000 007 ( 10 9 + 7 ).
В первой строке входных данных находятся два натуральных числа N и K ( 1 ≤ N ≤ 1 500 000 , 1 ≤ K ≤ 1 500 000 ) — число городов в Берляндии и число компаний-владельцев дорог соответственно. На следующих ( N - 1) строках дано описание дорог Берляндии, на i -ой из этих строк (эти строки нумеруются с единицы, города тоже нумеруются с единицы) находятся два числа b i и t i ( 1 ≤ b i ≤ N , 1 ≤ t i ≤ K ), означающие, что существует дорога из города с номером i + 1 в город с номером b i , и владеет ей компания с номером t i . По всем дорогам можно передвигаться в обе стороны; также, гарантируется, что из любого города можно добраться в любой другой по существующим дорогам.
На последней строке входных данных находятся 4 числа
A
,
B
,
C
,
c
0
(
1 ≤
C
≤ 1 000 000 001
,
0 ≤
A
,
B
,
c
0
<
C
), задающие стоимости проездных. Стоимости проездных вычисляются по формуле
, где
c
i
"— стоимость проездного
i
-ой компании, а «
» — остаток от деления
X
на
Y
.
Выведите единственное число — остаток от деления суммарной стоимости необходимых проездных на 1 000 000 007 .
В первом тесте из примера карта дорог выглядит так, как показано на рисунке. Кружками обозначены города, линиями — дороги, а числа в квадратах около дорог обозначают номера компаний, обслуживающих эти дороги. Цены проездных в этом примере равны c 1 = 3 бурля, c 2 = 5 бурлей. Таким образом, делегаты, едущие из первого города в третий, или обратно, должны купить оба проездных, остальным делегатам нужно проехать только одну дорогу, поэтому им нужно купить только один проездной. Итоговая стоимость проездных равна 2·(3 + 5) + 2·3 + 2·5 = 32 бурлей.
Во втором тесте схема дорог выглядит так же, а компания-владелец только одна. Стоимость проездного равна 3 бурля. Поэтому все 6 делегатов должны купить единственный проездной, и суммарная стоимость 6·3 = 18 бурлей.
Тесты, в которых выполняются дополнительные ограничения 1 ≤ N , K ≤ 100 , имеют суммарную стоимость не менее 30 баллов.
Тесты, в которых выполняются дополнительные ограничения 1 ≤ N , K ≤ 1000 , имеют суммарную стоимость не менее 50 баллов.
Тесты, в которых выполняются дополнительные ограничения 1 ≤ N , K ≤ 100 000 , имеют суммарную стоимость не менее 75 баллов.
3 2 1 1 2 2 1 2 100 1
32
3 1 1 1 2 1 1 2 100 1
18
Вы — министр транспорта в Тридевятом королевстве. Дороги, как известно, являются одной из основных проблем королевства, тем не менее, недавно была закончена постройка Великого Королевского Тракта — самой длинной дороги в Тридевятом царстве. Тракт представляет из себя прямую дорогу, поэтому далее будем называть координатой точки на тракте расстояние от начала тракта до нее.
Вам стало известно, что король скоро собирается проехать по этому тракту от начала до конца, причем поедет он со скоростью 1. Когда именно он собирается начать, вам неизвестно, но зато вы уверены, что это произойдет в какой-то случайный целочисленный момент времени между t 1 и t 2 включительно. В рамках модернизационной программы вы отдали поручение построить на Тракте n светофоров, которые должны будут впечатлить проезжающего короля. Светофоры в некотором смысле одноразовые, а именно они поначалу горят зеленым, затем красным, а потом снова зеленым, не переключаясь больше, пока не сломаются (но можно считать, что сломаются они не скоро). Про каждый светофор вам известно три величины: его положение на Тракте, время, когда он загорится красным, и время, когда он вновь загорится зеленым. Так получилось, что последний светофор стоит прямо на конце Тракта. Понятно, что король не станет подавать плохой пример подданным: никакой светофор он не будет проезжать на красный свет (в том числе это относится и к последнему светофору). В момент, когда красный свет только загорается, ехать уже становится нельзя, а когда загорается зеленый — сразу же можно.
Ваша премия как министра напрямую зависит от того, насколько долго король будет ехать по тракту, поэтому вас интересует вопрос, сколько в среднем времени ему потребуется на то, чтоб проехать Тракт от начала до конца (включая время ожидания на последнем светофоре, если это потребуется). Напишите программу, которая посчитает эту величину.
В первой строке входного файла вводится число n — количество светофоров ( 1 ≤ n ≤ 100 000 ). Затем в каждой из следующих n строк — описания светофоров. В каждой из них содержатся 3 целых числа x i , s i , f i ( 0 ≤ x i , s i , f i ≤ 10 9 ), описывающих очередной светофор: x i — это положение светофора на Тракте, s i — момент времени, когда светофор загорится красным, f i — момент времени, когда он вновь загорится зеленым ( 0 ≤ s i < f i ). Светофоры упорядочены по величине x , т.е. для любых номеров i и j таких, что 1 ≤ i < j ≤ n , верно, что x i < x j . Кроме того, гарантируется, что длина Тракта больше нуля, т.е. что x n > 0 .
В последней строке задаются целые числа t 1 и t 2 — начальный и конечный момент времени, когда король может начать свой путь ( 0 ≤ t 1 ≤ t 2 ≤ 10 9 ).
Выведите одно число — время в пути, усредненное по всем возможным временам начала (т.е. среднее арифметические времен в пути, вычисленных для всех возможных целочисленных времен старта от t 1 до t 2 включительно). Ваш ответ будет считаться верным, если его относительная погрешность будет не более 10 - 9 . Это обозначает, что, если ваш ответ равен a , а правильный — b , то должно выполняться | a - b | ≤ 10 - 9 b .
В примере король может выехать в любой момент между 6 и 9 включительно.
Если король выезжает в момент времени 6, то к первому светофору он подъезжает в момент времени 10, этот светофор еще горит зеленым, поэтому король едет дальше без остановки. Ко второму светофору король подъезжает в момент времени 14, этот светофор в этот момент загорается красным, поэтому король ждет до момента времени 15, когда светофор загорается опять зеленым. Итого получается время в пути равно 9.
Если король выезжает в момент времени 7, то к первому светофору он подъезжает в момент времени 11, когда этот светофор только загорелся красным — король ждет до момента времени 12. Ко второму светофору король подъезжает в момент времени 16, когда этот светофор уже горит зеленым. Итого получается время в пути равно 9.
Если король выезжает в момент времени 8 или 9, то он не ждет ни на одном светофоре, и время в пути получается 8.
Итого среднее время в пути есть (9 + 9 + 8 + 8) / 4 = 8.5 .
2 4 11 12 8 14 15 6 9
8.5000000000