寻找T^T(ezzzzzzz)

TimeLimit:1000MS  MemoryLimit:128MB
64-bit integer IO format:%lld
未提交 | 登录后收藏
Problem Description

T^T(born-again)给你n个点的树,编号1~n,顶点1为树的根。每个顶点的父节点是pi,你可以从一个顶点移动到它的任何子顶点。此外,每个顶点被赋予两种字符'T'和'^'中的任意一种,求满足顶点x->顶点y->顶点z,且顶点x和顶点z是'T',顶点y是'^'的(x,y,z)三元组的数量。因为答案过大,请取模1e9+7。


tip:顶点x->顶点y表示可以从顶点x移动到顶点y


尽量输入整个字符串或者用cin依次输入单个字符

Input

第一行一个整数t,表示t组数据

对于每组数据

第一行一个整数n,表示顶点的数量(1≤n≤5e5)

第二行包含n个字符的字符串,对应代表每个顶点的字符(字符只包含'T'和'^')

第三行包含n-1个整数p2,p3,……,pn(1≤pi<i),表示每个非根节点的父节点


所有测试用例的n之和不超过1e6

Output

对于每组数据输出一行一个整数,表示(x,y,z)三元组的数量

SampleInput
2
4
T^^T
1 1 2
7
T^^TT^T
1 1 2 4 3 3
SampleOutput
1
3
Submit
题目统计信息详细
总AC数25
通过人数11
尝试人数12
总提交量66
AC率16.67%
AC该题后可以添加标签
贴完标签可以获得20ACB。
并且可以获得本题所有提交代码查看权限。
点击标题可以显示标签。
如果你还没认真思考过这题,请不要查看标签
如果您已经通过了该题,请务为该题贴上标签

T^T Online Judge

[BUG反馈] [FAQ] [闽ICP备17026590号-1]
当前版本:3.24 系统时间: