Good Bye 2020 |
---|
Закончено |
Гомер, Одиссея
Во времена Ясона и Аргонавтов, было хорошо известно, что сирены используют свои песни, чтобы заманивать моряков к себе на погибель. Но немногие знали, что каждый раз сирены, когда зовут моряков по имени, те становятся слабее и более уязвимыми.
Для целей этой задачи, и песни сирен, и имена моряков будем представлять строками, состоящими из строчных английских букв. Чем больше раз имя моряка появляется как непрерывная подстрока в песне, тем моряк в большей опасности.
Ясон обнаружил, что сирены могут петь одну из $$$n+1$$$ песен, которые имеют следующую структуру: пусть $$$s_i$$$ ($$$0 \leq i \leq n$$$) будет $$$i$$$-й песней, а $$$t$$$ — некоторой строкой длины $$$n$$$, тогда для всех $$$i < n$$$: $$$s_{i+1} = s_i t_i s_i$$$. другими словами, $$$i+1$$$-я песня это конкатенация $$$i$$$-й песни, $$$i$$$-й буквы (в $$$0$$$ индексации) строки $$$t$$$, и $$$i$$$-й песни.
К счастью, он также знает $$$s_0$$$ и $$$t$$$. Ясон интересуется, сколько раз имя моряка встречается в конкретной песне. Ответьте на $$$q$$$ вопросов: дано имя моряка ($$$w$$$) и номер песни ($$$i$$$), выведите количество вхождений $$$w$$$ в $$$s_i$$$ как подстроки. Так как это число может быть довольно большим, выведите его по модулю $$$10^9+7$$$.
В первой строке дано два целых числа $$$n$$$ и $$$q$$$ ($$$ 1 \leq n, q \leq 10^5$$$), обозначающих что есть $$$n+1$$$ песня и $$$q$$$ вопросов. В следующих двух строках даны две строки $$$s_0$$$ и $$$t$$$ ($$$1 \leq |s_0| \leq 100, |t| = n$$$).
Следующие $$$q$$$ строк содержат вопросы: каждая строка содержит число $$$k$$$ ($$$ 0 \leq k \leq n$$$), индекс песни сирен, и непустую строку $$$w$$$, обозначающую имя моряка. Все строки состоят из строчных английских букв. Сумма длин имен моряков не превышает $$$10^6$$$.
Выведите $$$q$$$ строк, $$$i$$$-я из них должна содержать остаток по модулю $$$10^9+7$$$ от числа вхождений $$$w$$$ в $$$s_k$$$.
3 3 aa bcd 2 aba 3 ca 3 aa
2 2 8
4 5 aba bbac 1 a 3 baca 3 ab 2 bab 4 aba
4 0 14 6 28
В первом примере песни сирен выглядят так:
Название |
---|