Страница: << 65 66 67 68 69 70 71 >> Отображать по:
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
256 megabytes

Пусть дан строчный латинский символ c . Тогда операция shift ( c ) превращает c в следующий по порядку символ в алфавите. Например, shift (a) = b, shift (e) = f, shift (z) = a.

Дана строка S , состоящая из N строчных латинских символов (индексация с 0). Необходимо обработать Q запросов 2 типов:

"1 i j t": ко всем элементам строки с индексами в отрезке [i:j] применить t раз операцию shift .

"2 i j": найдите количество непустых подмножеств символов строки { c 1 , c 2 , ... , c k }, где i index c 1 < index c 2 < ... < index c k j , таких что символы подмножества, переставленные в некотором порядке, образуют палиндромом. Так как число может быть очень большим, выведите его по модулю 10 9 + 7 .

Два подмножества символов строки называются различными, если множества индексов их элементов различаются.

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

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

Первая строка содержит два целых числа N и Q ( 1 ≤ N , Q ≤ 10 5 ) - длину строки и количество запросов соответственно. Вторая строка содержит одну строку S длины N , состоящую из строчных латинских символов. Каждая из последующих Q строк содержит запрос в формате, описанном в условии.

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

Для каждого запроса второго типа выведите одно целое число - ответ на данный запрос.

Примечание

Решения, работающие при N ≤ 500 и Q ≤ 500 , будут оцениваться в 20 баллов.

Решения, работающие при условии, что все запросы являются запросами второго типа, оцениваются еще в 30 баллов.

Примеры
Входные данные
3 5
aba
2 0 2
2 0 0
2 1 2
1 0 1 1
2 0 2
Выходные данные
5
1
2
3
Входные данные
5 7
acdec
2 0 3
1 3 4 36
1 2 3 81
1 1 4 11
2 3 3
2 2 3
2 1 2
Выходные данные
4
1
2
2
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
32 megabytes

Дан граф из \(n\) вершин, раскрасьте его в минимально возможное число цветов так, чтобы никакие две вершины, соединенные ребром, не были одного цвета.

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

В первой строке содержится число \(t\) - количество тестовых примеров (\(1 \leq t \leq 5\)).

Далее содержится \(t\) тестовых случаев, заданных в следующем формате:

В первой строке записаны числа \(n\) и \(m\) - количество вершин и ребер соответственно (\(1 \leq n \leq 17\), \(0 \leq m \leq \frac{n \cdot (n - 1)}{2}\)).

Затем идет \(m\) строк, в которых содержится по два числа \(v_i\) \(u_i\), что означает, что вершины \(v_i\) и \(u_i\) соеденены ребром (\(1 \leq v_i, u_i \leq n, v_i \neq u_i\)).

Гарантируется, что все ребра в каждом тестовом случае различны.

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

Для каждого тестового случая в первой строке выведите минимальное число цветов \(k\).

Во второй строке выведите \(n\) чисел \(a_i\) - цвета вершин (\(1 \leq a_i \leq k\)).

Примеры
Входные данные
3
3 3
1 2
2 3
3 1
5 3
2 1
3 1
4 2
6 7
1 2
1 5
2 5
2 3
2 4
5 6
5 4
Выходные данные
3
3 2 1
2
1 2 2 1 1
3
1 3 1 1 2 1
ограничение по времени на тест
6.0 second;
ограничение по памяти на тест
512 megabytes

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

Для числа k рассмотрим все такие различные мультимножества положительных чисел, что их сумма в точности k . Например для k = 3 эти множества {1, 1, 1} , {1, 2} , {3} .

Интересностью числа назовем сумму кубов размеров всех различных мультимножеств. Например интересность числа k = 3 равна 3 3 + 2 3 + 1 3 = 27 + 8 + 1 = 36 .

Поскольку задача должна быть интересной, вам нужно посчитать интересность всех чисел от 1 до n по модулю MOD .

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

В единственной строке входных данных задаются два числа n и MOD ( 1 ≤ n ≤ 10 5 , 1 ≤ MOD ≤ 10 9 + 7 ) — максимальное число, для которого надо посчитать интересность, и модуль.

Модуль не обязательно простой.

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

Выведите n строк, в i -й строке должна содержаться интересность числа i по модулю MOD .

Система оценки

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

  1. 1 ≤ n ≤ 5 , 5 баллов.
  2. 1 ≤ n ≤ 10 , 5 баллов.
  3. 1 ≤ n ≤ 20 , 10 баллов.
  4. 1 ≤ n ≤ 100 , 10 баллов.
  5. 1 ≤ n ≤ 1000 , 10 баллов.
  6. 1 ≤ n ≤ 5000 , 10 баллов.
  7. 1 ≤ n ≤ 50 000 , 25 баллов.
  8. 1 ≤ n ≤ 100 000 , 25 баллов.

Примеры
Входные данные
3 998244353
Выходные данные
1
9
36
Входные данные
10 3
Выходные данные
1
0
0
0
2
2
0
2
2
0
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
512 megabytes

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

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

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

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

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

Первая строка ввода содержит два числа - количество простынь N ( 1 ≤ N ≤ 80000 ), и количество шаров M ( 1 ≤ M ≤ 80 000 ).

i -я из следующих N строк содержит четыре числа: координаты нижнего левого угла A i , B i ( 1 ≤ A i , B i ≤ 10 9 ) и верхнего правого угла C i , D i , ( 1 ≤ C i , D i ≤ 10 9 ) i -й простыни.

j -я из следующих M строк содержит три числа, где X j , Y j ( 1 ≤ X j , Y j ≤ 10 9 ) - координаты j -го выстрела Кима и K j ( 1 ≤ K j ≤ 10 9 ) - цвет j -го пейнтбольного шара.

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

i -я из N выходных строк должна содержать количество цветов на i -м листе.

Система оценки

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

Примеры
Входные данные
2 2
1 1 3 3
5 6 10 10
3 3 1
5 1 2
Выходные данные
1
0
Входные данные
3 3
1 1 7 7
2 2 6 6
3 3 5 5
4 4 1
2 6 2
4 7 3
Выходные данные
3
2
1
Входные данные
1 3
1 1 7 7
2 6 2
4 7 3
4 4 1
Выходные данные
3
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
128 megabytes

Вы когда-нибудь мечтали стать главным героем компьютерной игры? Главный герой этой истории, Бранимир, мечтает сейчас именно об этом.

Мир в мечте Бранимира состоит из N небоскребов, пронумерованных слева направо. Для i -го небоскреба, известна его высота H i и количество золотых монет G i на крыше этого небоскреба. Игра начинается с прыжка на любой из небоскребов и состоит из нескольких ходов. На каждом ходу Бранимир может прыгнуть на любой небоскрёб, находящийся справа от него, но так, чтобы высота нового небоскрёба была не меньше того небоскрёба, на котором сейчас сидит Бранимир. Оказавшись на крыше небоскреба, Бранимир собирает все золотые монеты на ней. Бранимир может закончить игру после любого количества шагов (возможно, нулевого), но он должен собрать не менее K золотых монет, чтобы перейти на следующий уровень.

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

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

Первая строка содержит 2 натуральных числа N и K ( 1 ≤ N ≤ 40 , 1 ≤ K ≤ 4·10 10 ) — число небоскрёбов и количество монет, которые надо набрать соответственно.

Следующие N строк содержат информацию о небоскрёбах. В i -й строке даны 2 числа H i и G i ( 1 ≤ H i , G i ,  ≤ 10 9 ) — высота и количество монет на i -м небоскрёбе.

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

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

Система оценки

Решение, корректно работающее при n ≤ 20 будет оцениваться в 40 баллов.

Примеры
Входные данные
4 6
2 1
6 3
7 2
5 6
Выходные данные
3
Входные данные
2 7
4 6
3 5
Выходные данные
0
Входные данные
4 15
5 5
5 12
6 10
2 1
Выходные данные
4

Страница: << 65 66 67 68 69 70 71 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест