Это простая версия задачи. Отличие между версиями заключается в том, что в этой версии строка $$$s$$$ не содержит символа 1. Вы можете делать взломы только в том случае, если решили все версии этой задачи.
Вам дано корневое дерево из $$$n$$$ вершин с корнем в вершине $$$1$$$. Для каждой вершины её дети заданы в фиксированном порядке.
Каждая вершина, кроме корня, имеет цвет: $$$0$$$ или $$$1$$$. Для фиксированной раскраски определим следующий обход.
p <- пустой список
q <- дек, содержащий только вершину 1
пока q не пуст:
v <- первый элемент q
если v не находится в p:
добавить v в конец p
если все дети v уже находятся в p или в q:
удалить первый элемент из q
иначе:
u <- первый ребёнок v, который не находится ни в p, ни в q
если color[u] = 0:
добавить u в начало q
иначе:
добавить u в конец q
После завершения процесса список $$$p$$$ называется списком обхода данной раскраски. Можно показать, что $$$p$$$ всегда является перестановкой $$$1,2,\ldots,n$$$. В частности, если все цвета равны $$$0$$$, то $$$p$$$ является прямым порядком обхода дерева в глубину (DFS preorder); если все цвета равны $$$1$$$, то $$$p$$$ является порядком обхода в ширину (BFS), где дети посещаются в заданном порядке.
Вам дана строка $$$s$$$ длины $$$n-1$$$, состоящая из символов 0, 1 и ?. Для каждой вершины $$$i$$$ при $$$2\le i\le n$$$ символ $$$s_{i-1}$$$ описывает возможный цвет вершины $$$i$$$:
Найдите количество различных списков обхода, которые можно получить при всех допустимых раскрасках. Так как ответ может быть большим, выведите его по модулю $$$10^9+7$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных..
Первая строка каждого набора входных данных содержит целое число $$$n$$$ ($$$2 \le n \le 3000$$$) — количество вершин в дереве.
Вторая строка содержит строку $$$s$$$ длины $$$n-1$$$. В простой версии $$$s$$$ состоит только из символов 0 и ?. Символ $$$s_i$$$ описывает возможный цвет вершины $$$i+1$$$.
Следующие $$$n$$$ строк описывают упорядоченные списки детей. $$$i$$$-я из этих строк сначала содержит целое число $$$l_i$$$ ($$$0 \le l_i \le n-1$$$) — количество детей вершины $$$i$$$. Затем следуют $$$l_i$$$ различных целых чисел $$$a_{i,1},a_{i,2},\ldots,a_{i,l_i}$$$ ($$$1 \le a_{i,j} \le n$$$) — дети вершины $$$i$$$ в их порядке.
Гарантируется, что заданные упорядоченные списки детей описывают корневое дерево с корнем $$$1$$$.
Гарантируется, что сумма значений $$$n^2$$$ по всем наборам входных данных не превосходит $$$9 \cdot 10^6$$$.
Для каждого набора входных данных выведите единственное целое число — количество различных списков обхода $$$p$$$, которые можно получить при всех допустимых назначениях цветов, по модулю $$$10^9 + 7$$$.
104?0?2 2 301 406?????5 2 3 4 5 60000012?????0?000?1 112 8 33 9 12 601 401 1001 502 2 702?1 205????1 21 31 41 50500004 2 3 4 500003??2 2 3005????2 2 32 4 50007??????2 2 32 4 52 6 700008??0?0??3 2 3 42 5 61 7001 800
32775111273026
Пусть $$$c_i$$$ — цвет вершины $$$i$$$.
В первом наборе входных данных вершина $$$3$$$ должна иметь цвет $$$0$$$, тогда как вершины $$$2$$$ и $$$4$$$ свободны.
Если $$$(c_2,c_4)=(0,0)$$$ или $$$(c_2,c_4)=(0,1)$$$, список обхода равен $$$[1,2,3,4]$$$.
Если $$$(c_2,c_4)=(1,0)$$$, список обхода равен $$$[1,3,4,2]$$$.
Если $$$(c_2,c_4)=(1,1)$$$, список обхода равен $$$[1,3,2,4]$$$.
Таким образом, существует $$$3$$$ различных списка обхода.
Во втором наборе входных данных дерево является звездой с корнем в вершине $$$1$$$, и все пять листьев имеют свободные цвета. Лист с цветом $$$0$$$ посещается немедленно при его рассмотрении, тогда как лист с цветом $$$1$$$ откладывается до тех пор, пока не будут рассмотрены все дети корня. Среди всех $$$2^5$$$ допустимых назначений цветов существует $$$27$$$ различных списков обхода.
В третьем наборе входных данных свободными вершинами являются $$$2,3,4,5,6,8,12$$$. Фиксированные цвета: $$$c_7=0$$$, $$$c_9=0$$$, $$$c_{10}=0$$$ и $$$c_{11}=0$$$. Среди всех $$$2^7$$$ допустимых назначений цветов существует $$$75$$$ различных списков обхода.