权值

Accepts: 2
Submissions: 13
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 32768/32768 K (Java/Others)
Problem Description
给定数组 $b_{1...n}$ 和 $c_{1...n}$,求有几个整数数列 $a_{1...n}$,满足 $0\leq a_i<2^{60}$,且 $a_i~xor~a_{b_i}\leq c_i$ 由于答案可能过大,你只需要输出答案对 $998244353$ 取模后的值。
Input
第一行一个正整数 $3\leq n\leq 10^5$ 第二行 $n$ 个整数表示 $b_{1...n}$,满足 $1\leq b_i\leq n$,且 $b_i\neq i$ 第三行 $n$ 个整数表示 $c_{1...n}$,满足 $0\leq c_i<2^{60}$
Output
输出答案
Sample Input
3
2 3 1
2 1 2
Sample Output
416046766