Codeforces Round 406 (Div. 1) |
---|
Закончено |
Рик влюблен в Юнити. Но и мистер Мисикс также любит Юнити. Поэтому Рик и мистер Мисикс «любовные соперники».
Юнити нравится рэп, поэтому было решено, что они должны участвовать в рэп игре (баттле), чтобы выбрать лучшего. Рик слишком ботаник, поэтому вместо этого он собирается сделать свой текст используя его оригинальный алгоритм на лирике песни «Rap God».
Его алгоритм немного сложен. Он делает дерево с n вершинами, пронумерованными от 1 до n. На каждом ребре дерева написана маленькая латинская буква. Он определил str(a, b), как строку сформированную написанием всех букв, одну за другой, на кратчайшем пути от a до b (длина строки равна расстоянию от a до b). Заметьте, что str(a, b) это, записанная задом наперед, строка str(b, a). Также строка str(a, a) является пустой строкой.
Чтобы сделать лучший текст, ему необходимо отвечать на некоторые запросы, но он не ученый-компьютерщик и не может ответить на эти запросы, поэтому он просит вас помочь ему. Каждый запрос характеризуется двумя вершинами x и y (x ≠ y). Ответом на этот запрос является кол-во таких вершин z, что z ≠ x, z ≠ y и str(x, y) лексикографически больше, чем str(x, z).
Строка x = x1x2...x|x| лексикографически больше, чем строка y = y1y2...y|y|, если |x| > |y| и x1 = y1, x2 = y2, ..., x|y| = y|y|, или существует такое r (r < |x|, r < |y|), что x1 = y1, x2 = y2, ..., xr = yr и xr + 1 > yr + 1. Символы сравниваются, как их ASCII коды (или как их позиции в алфавите).
Помогите Рику заполучить девушку.
Первая строка входных данных содержит два целых числа n и q (2 ≤ n ≤ 20000, 1 ≤ q ≤ 20000) — количество вершин в дереве и количество запросов соответсвенно.
Следующие n - 1 строк содержат ребра. Каждая строка содержит два целых числа v и u (концы ребра), за которыми следует маленькая латинская буква c (1 ≤ v, u ≤ n, v ≠ u).
Следующие q строк содержат запросы. Каждая строка содержит два целых числа x и y (1 ≤ x, y ≤ n, x ≠ y).
Для каждого запроса выведите ответ в одну строку.
4 3
4 1 t
3 2 p
1 2 s
3 2
1 3
2 1
0
1
1
8 4
4 6 p
3 7 o
7 8 p
4 5 d
1 3 o
4 3 p
3 2 e
8 6
3 7
8 1
4 3
6
1
3
1
Дерево для первого теста из условия:
Дерево для второго теста из условия:
В этом тесте:
Поэтому для первого запроса и для третьего запроса это ответ.
Название |
---|